הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   מחפש דרך יעילה (https://hosts.co.il/forums/showthread.php?t=29098)

amirs_5 18-08-06 16:25

מחפש דרך יעילה
 
אני בונה מערכת דרוג,
ואני מחפש תטכניקה של זה ,
איך אני אמור לשמור את כל הדירוגים ?
כאילו מה הדרך הכי טובה :)
תודה לעוזרים .

ViPeRt 18-08-06 16:34

אתה עושה טבלה
id
name
s1
s2
s3
s4
s5

במידה ואתה רוצה לדרג עד 5
ואז כל פעם שמישהו מצביע ל ID מסויים נגיד הוא רוצה להצביע 4 אז אתה לוקח את התא s4 באותו ID ומעלה ב 1

מקווה שעזרתי!

נ.ב
אם אתה רוצה לשמור גם אייפי שתוכל למנוע מלהצביע יותר מפעם אחת זה כבר אחרת
אתה יוצר טבלה ככה:
id
user
vote_id
vote_number

ואז vote_number הוא מספר ההצבעה נגיד 4.
vote_id למה הצביעו
וככה יש לך את כל הנתונים!

בהצלחה

eLad 18-08-06 16:37

ציטוט:

נכתב במקור על ידי ViPeRt
אתה עושה טבלה
id
name
s1
s2
s3
s4
s5

במידה ואתה רוצה לדרג עד 5
ואז כל פעם שמישהו מצביע ל ID מסויים נגיד הוא רוצה להצביע 4 אז אתה לוקח את התא s4 באותו ID ומעלה ב 1

מקווה שעזרתי!

נ.ב
אם אתה רוצה לשמור גם אייפי שתוכל למנוע מלהצביע יותר מפעם אחת זה כבר אחרת
אתה יוצר טבלה ככה:
id
user
vote_id
vote_number

ואז vote_number הוא מספר ההצבעה נגיד 4.
vote_id למה הצביעו
וככה יש לך את כל הנתונים!

בהצלחה

לא מסכים איתך |Rolleyes|

ואם אני רוצה לאפשר דירוג מ 1 עד 10, אז אני צריך לייצר 10 שדות כאלו?

ואם דירוג מ 1 עד 100, אז 100 שדות? לא יעיל ..

RS324 18-08-06 17:05

הכי פשוט
voteid,vote,pollid

ID - זה ID של ה VOTE
vote - מספר
pollid - זה ה ID של הסקר לדוגמא
ואז אתה יוצר שאילתה פשוט
SELECT SUM (vote) AS voterate FROM pollvote WHERE pollid='$pollid'

amirs_5 18-08-06 17:06

ציטוט:

נכתב במקור על ידי RS324
הכי פשוט
voteid,vote,pollid

ID - זה ID של ה VOTE
vote - מספר
pollid - זה ה ID של הסקר לדוגמא
ואז אתה יוצר שאילתה פשוט
SELECT SUM (vote) AS voterate FROM pollvote WHERE pollid='$pollid'

אחלה , ויש לי שאלה בקשר למשאבים,
אם יהיה 100000 הצבעות , מה לא יקח לו זמן לחשב את כל ההצבעות ?

RS324 18-08-06 17:10

לא משהו קריטי.
זה הדרך הכי חכמה לעשות את זה כי אתה בעצם עושה את כל החישוב בעזרת שאילתה 1 במקום 100 שאילתות + חישובים ב PHP

MYSQL הוא שרת מאד חזק...אתם לא מודעים עד כמה פשוט.

גם אם יהיה לו 9999999999 הצבעות, אתה תקבל את התשובה בתוך שניות

meshuga 18-08-06 17:20

עריכה:
אופס, חח..חשבתי שהוא התכוון משהו אחר.

עוד עריכה:
כן, זה כן מה שהוא התכוון...
תשתמש בממוצע...בשדה אחד תשמור את מספר ההצבעות ובשני את הסכום ואז תחלק.

RS324 18-08-06 17:23

במה יעילה הדרך שלך יותר משלי ?

ד"א התבלבלתי - SUM זה סכום AVG זה ממוצע

בכל מקרה איך שלך היא יותר יעילה ? הוא צריך לעדכן 2 פרמטרים בטבלה ואחרי זה לבחור את התוצאות.

בדרך שלי הוא עושה שאילתה אחת בלבד של הוצאת נתונים
ובנוסף הוא גם יכול לעשות סטיסטיקות לדוגמא
כמה אנשים הצביעו 3
כמה אנשים הצביעו 5
וכד'

דבר שהוא לא יכול לעשות בדרך שלך...

amirs_5 18-08-06 17:27

כן הבנתי :P

יש לי עוד שאלה על דרך להתחברות?
איפה אני ישמור את הפרטים של המשתמש בקוקיז
סשן ?
או במסד נתונים ?

meshuga 18-08-06 17:28

ציטוט:

נכתב במקור על ידי RS324
במה יעילה הדרך שלך יותר משלי ?

ד"א התבלבלתי - SUM זה סכום AVG זה ממוצע

בכל מקרה איך שלך היא יותר יעילה ? הוא צריך לעדכן 2 פרמטרים בטבלה ואחרי זה לבחור את התוצאות.

בדרך שלי הוא עושה שאילתה אחת בלבד של הוצאת נתונים
ובנוסף הוא גם יכול לעשות סטיסטיקות לדוגמא
כמה אנשים הצביעו 3
כמה אנשים הצביעו 5
וכד'

דבר שהוא לא יכול לעשות בדרך שלך...

כן, אבל תחשוב לאורך זמן...אתר גדול, שיש בו אלפי מדרגים ביום, אולי השרת יוכל לעבד את זה אבל תחשוב על הנפח שהמסד יקבל על זה....ובשביל מה?..הצבעה..סטטיסטיקה עושה רק מי שממש צריך ואז הוא כן יעשה בדרך שלך, למרות שאפשר לקמבן...בכל זאת..סטטיסטיקה להצבעה...לא ממש נחוץ ב90% מהמקרים..התוצאה הסופית זה העיקר.


כל הזמנים הם GMT +2. הזמן כעת הוא 18:54.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ