ציטוט:
נכתב במקור על ידי exciter
אני לא יודע מה הכמות נתונים שיש... זה משהו דינמי... אם זה היה ידוע, איזו סיבה יש לי להחזיק את זה במסד נתונים? :\
|
"כל הנתונים" או "כל הנתונים שיש להם visible=1" זה כמות ידועה של נתונים. אפשר אפילו להיות יותר ספציפיים, וזו עדיין כמות ידועה.
אם אתה יכול לעשות את זה, שליפה של כל הנתונים הרלוונטיים בשאילתא אחת ואז סידור שלהם במערך נראה לי הפתרון הכי אסתטי והגיוני.
ציטוט:
נכתב במקור על ידי Exa.co.il
יעיל זה לא, אבל אכן זו הדרך היחידה לבצע את השליפות הללו.
אפשר לשלוח באמצעות פרוצדורת DB שתבצע את הרקורסיה או באמצעות PHP שישלוף.
עדיף פרוצדורה כי ככה חוסכים קצת "תקשורת" בין PHP ל-DB.
כמו כן, לדעתי אפיון הטבלאות לא נכון.
האפיון אמור להיות בערך ככה:
tblCategories:
- CatId
- ParentCatId
- Name
כאשר קטגוריות ראשיות מקבלות ערך ParentCatId=0 והילדים שלהם יקבלו את ה-CatId שלהם. בצורה כזאת תקבל אפשרות להוסיף כמויות בלתי מוגבלות של קשרי אבא-ילד וזה יתאים לך טוב לרקורסיה של השליפה.
בצורה דומה בונים "פורום רקורסיבי" פשוט (פורום עם מבנה עץ - כמו תפוז לדוגמא)
|
לא מדויק שזו השיטה היחידה, בכלל לא. במערכות עם מודול קטלוג המוצרים שלי, אני משתמש בשאילתא אחת בשביל לשלוף תפריט שלם ופשוט מסדר, כמו שהסברתי למעלה, וראיתי כבר עוד שיטה פעם שחוסכת גם היא בשאילתות.