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

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

eLad 26-05-06 12:12

ציטוט:

נכתב במקור על ידי sUP
אני צריך את ההסבר לאיך לעשות את זה..

יש כל מיני שיטות איך לבנות פורום עץ

ניקח את השיטה הפשוטה (למתחילים), המסד ייראה ככה (רק השדות הרלוונטים):
קוד:

nMessageId | nForumId | nParentId | nLevelId | dDate
nParentId - ה ID של הודעת אב
nLevelId - יחזיק את השרשור (כלומר ייטפל בהזחה)
dDate - תאריך הכתיבה של ההודעה

כל הודעת בן תקבל את ה ID של הודעת האב.
הודעת בן תקבל levelId של 0 והודעות נכד 1, נינים 2 וכך הלאה

במידה ויש יותר מהודעת בן לאותו שרשור נניח, תסדר לפי התאריך (מי שיופיע ראשון זה מי שנכתב קודם)

avii 26-05-06 12:22

הינה מאמר שמסביר איך בומים את זה
http://webmaster.org.il/article.asp?id=146
תהנה

sUP 26-05-06 18:37

אלעד תודה רבה =]

אבי, תודהעל הנסיון אבל זה לא מה שאני מחפש

MasterNir 26-05-06 19:37

אלעד, מה המטרה של ה-LevelId?

sUP 27-05-06 12:49

הדירוג של ההודעה..

MasterNir 27-05-06 14:13

כן, הבנתי, העומק שלה ביחס לעץ... אבל בשביל מה צריך את זה?

sUP 27-05-06 14:45

ציטוט:

נכתב במקור על ידי MasterNir
כן, הבנתי, העומק שלה ביחס לעץ... אבל בשביל מה צריך את זה?

שזה יציג את זה מדורג.. |Rolleyes|

MasterNir 27-05-06 18:05

בשביל מה?
אתה מכניס לכל ענף (הודעה) את ה-ID של הענף שמעליו (ההודעה אליה הוא מגיב) ולהודעות חדשות מכניס NULL.
ואז עושה פונקציה רקורסיבית שמקבלת ID ומדפיסה את הענפים דרגה אחת תחתיו וקורא לה.

eLad 27-05-06 18:12

ציטוט:

נכתב במקור על ידי MasterNir
בשביל מה?
אתה מכניס לכל ענף (הודעה) את ה-ID של הענף שמעליו (ההודעה אליה הוא מגיב) ולהודעות חדשות מכניס NULL.
ואז עושה פונקציה רקורסיבית שמקבלת ID ומדפיסה את הענפים דרגה אחת תחתיו וקורא לה.

ואיך בדיוק אתה מחלק את הרווחים? כלומר, איך אתה יודע כמה לעשות "הזחה"?

אני אתן לך דוגמא קטנה -
בסוגריים מופיע ככה: (ID ההודעה, ID של הודעת האב)

אהלן חבר'ה מה המצב? (56 , 0)
.....הכל טוב אחי, מה איתך? (78 , 56)
.....סבבה גבר (102 , 56)
...........אה יוסי מה קורה לא רואים אותך (105 , 102)
................וואלה הכל טוב.. בא למשחק בשבת? (222 , 105)
.....................מה איזה משחק? (333 , 222)
..........................של מכבי בצ'כונה (355 , 333)
................הופה הנה יוסי תראו (250 , 105)


עכשיו, איך בדיוק אתה מבצע את ההזחה להודעות החלק מההודעה שה ID שלה הוא 105?
אם היית משתמש ב levelID אז היית יכול לבצע משהו כזה:

קוד:

style= "width: 20 * levelID px;"
קאפיש?

MasterNir 28-05-06 10:32

או שכל פעם שאתה יורד בעץ להוסיף אחד... :S

בפורומים של אלפי הודעות אתה סתם מבזבז הרבה זיכרון ומגדיל את הבסיס נתונים.


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

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