View Single Post
ישן 23-10-10, 12:02   # 6
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי exciter צפה בהודעה
אני לא יודע מה הכמות נתונים שיש... זה משהו דינמי... אם זה היה ידוע, איזו סיבה יש לי להחזיק את זה במסד נתונים? :\
"כל הנתונים" או "כל הנתונים שיש להם visible=1" זה כמות ידועה של נתונים. אפשר אפילו להיות יותר ספציפיים, וזו עדיין כמות ידועה.

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



ציטוט:
נכתב במקור על ידי Exa.co.il צפה בהודעה
יעיל זה לא, אבל אכן זו הדרך היחידה לבצע את השליפות הללו.

אפשר לשלוח באמצעות פרוצדורת DB שתבצע את הרקורסיה או באמצעות PHP שישלוף.
עדיף פרוצדורה כי ככה חוסכים קצת "תקשורת" בין PHP ל-DB.

כמו כן, לדעתי אפיון הטבלאות לא נכון.
האפיון אמור להיות בערך ככה:
tblCategories:
- CatId
- ParentCatId
- Name

כאשר קטגוריות ראשיות מקבלות ערך ParentCatId=0 והילדים שלהם יקבלו את ה-CatId שלהם. בצורה כזאת תקבל אפשרות להוסיף כמויות בלתי מוגבלות של קשרי אבא-ילד וזה יתאים לך טוב לרקורסיה של השליפה.

בצורה דומה בונים "פורום רקורסיבי" פשוט (פורום עם מבנה עץ - כמו תפוז לדוגמא)
לא מדויק שזו השיטה היחידה, בכלל לא. במערכות עם מודול קטלוג המוצרים שלי, אני משתמש בשאילתא אחת בשביל לשלוף תפריט שלם ופשוט מסדר, כמו שהסברתי למעלה, וראיתי כבר עוד שיטה פעם שחוסכת גם היא בשאילתות.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote