שלח תשובה

זירת השאלות

539
צפיות
7
תשובות

הצגת הודעות בסדר הנכון בפורום עץ )-

,‏ 6 בנובמבר, 2006

מצטער אם הכותרת לא מספיק ברורה – כנראש שזה כי העניין לא מספיק ברור.

אוקי, אז אני בונה פורום עץ רקורסיבי בשיטה המתוארת כאן באתר.
יש לי לכל הודעה ראשית מאפיין (last_change) שיודע מתי שינו את ההודעה לאחרונה – הגיבו לה – הגיבו לבןנכד שלה וכו'.

אני רוצה למשוך את כל ההודעות בעזרת getrows אבל כשאני מגדיר את השאילתא:
ORDER BY last_change DESC
כדי שהודעה שהגיבו לה תהייה מוצגת למעלה אני נתקל בבעיה:
כל התגובות שלה מוצגות כמובן בסדר ההפוך – התגובה הכי חדשה מוצגת למעלה וכן הלאה.

יש למישהו רעיון איך לפתור את הצרה?
האם הפיתרון הנכון הוא שתי שאילתות – אחת להודעות ראשיות ואחת לתגובות ולהכניס כל אחת למערך getrows שונה?
האם לעשות מניפולציה בפתיחת התגובות בלבד?

אני מקווה שאני מספיק ברור…
תודה רבה
אלחנן

תגיות:

7 תשובות

  1. שולחי הגיב:

    מה שקורה זה שההודעה שמוצגת בראש הדף
    היא הישנה ביותר.

  2. שימי הגיב:

    מיון לפי אבא
    תנסה למיין לפי
    last_changed desc, father asc

    הכוונה ב father, זה האבא של כל הודעה.

  3. שולחי הגיב:

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

    מה יקרה אם יהיו 10000 הודעות?
    איך אפשר להתגבר על איטיות?

  4. שימי הגיב:

    לחלק לעמודים
    פשוט לא לטעון את כל ה10k

    select top X (access/mssql) or select…limit X(mysql)

  5. שולחי הגיב:

    זאת הבעייה
    שזה לא רלוונטי.
    מה עוזר לי לטעון את 100 הרשומות החדשות ביותר?
    אם למשל הגיבו תגובה חדשה על הודעה ישנה וההודעה הוקפצה אז אני צריך לטעון גם הודעת אב ישנה מאד…

  6. שימי הגיב:

    שדה תאריך עדכון
    אז פתרון לזה יהיה, להוסיף לאבא שדה, תאריך עדכון (בנוסף לתאריך יצירה)
    וכשמעדכנים את הבן, לעדכן גם את התאריך של האבא.

    או

    לטעון את האבות לפי התאריכים של הבנים

    מעבר לזה, זמן טעינה זה תמיד בעיה לא קטנה.

שלח תשובה