![]() |
חיפוש ע"פ tags
שלום רב,
אני צריך עזרה בחיפוש ע"פ tags מבנה הטבלה: ID | name | content | tags Tags נראה ככה: tag1,tag2,tag3 אני צריך לעשות סינון ע"פ תגים, למי שהו יש רעיון ? ליאור |
לפי דעתי (רוב הסיכויים שיש פיתרון יותר יעיל,אבל זה מה שעולה לי כרגע)
למשל התג שלך הוא dog בבסיס נתונים אתה שולף רשומה (פשוט בוחר את כל הרשומות ועובר עליהן אחת אחת) מכניס את הרשומה מהבסיס נתונים למערך ובודק אם dog נמצא במערך אם כן מוסיף אותו למערך אחר כדי לשמור את הרשומה הזאת.. |
אפרט לך כאן קצת יותר.
קודם כל, קרא על Many to Many relationship. אתה צריך במקרה הזה 3 טבלאות:
הטבלה הראשונה מחזיקה מידע על הפוסטים בלבד. הטבלה השניה מחזיקה מידע על התגיות בלבד. הטבלה השלישית מקשרת פוסטים לתגיות (כאשר 2 השדות הם foreign keys כמובן). |
ציטוט:
טבלה posts וטבלת tags שדות: id value post_id ? |
במה זה יותר פשוט?
זה יצור לך הגדרה ביותר ממקום אחד עבור כל תגית. |
תוכל לצמצם ל2 טבלאות, 3 טבלאות יהיו מיותרות כאן.
טבלה ראשונה posts. שמכילה: id | title | content ושאר השדות שאתה צריך. טבלה שנייה tags. שמכילה: post_id | id | tag_name. תוכל לקשר בין הטבלה השנייה לראשונה עם post_id .. וככה גם תוכל לקבל את כל התגיות של פוסט מסויים, או את הפוסטים של תגית מסויימת. |
עדיף ב- 3 טבלאות..
אחרת אתה מערבב בין הגדרת התגיות ובין הייחוס שלהן לפוסטים. אם לא הבנתם את הרעיון מהקישור שפרסמתי, אולי כדאי שתעיפו מבט גם כאן: http://stackoverflow.com/questions/6...-optional-tags http://codex.wordpress.org/Database_Description בהצלחה. |
ציטוט:
עם 2 הטבלאות ניתן יהיה למשוך תגית של פוסט, למשוך תגיות של פוסטים ולמשוך פוסטים של תגית \ תגיות מסויימות. אין צורך במשהו מעבר. |
חבל שנטחן מים..
אפשר להשתמש בשאילתה אחת גם עם 3 טבלאות. אפשר לעשות את כל מה שרשמת במשפט השני (ולעיתים בצורה יעילה יותר) גם עם 3 טבלאות. ולסיכום - טיפשי זה בטוח לא, מי קבע שלהשתמש בפחות טבלאות זה יותר טוב? מה שאתה אומר יכול להיות יותר טוב במקרה אחר, אבל הוא לא יותר טוב כשמדובר על תגיות, כאשר תגיות עם אותו ערך (אותו שם) צריכות להיות קשורות אחת לשניה ולמעשה להוות יישות אחת. לא סתם פרסמתי את הקישורים האלו בהודעות שלי.. באמת שכדאי להיכנס ולקרוא. הנה עוד אחד - http://en.wikipedia.org/wiki/Many-to...8data_model%29 ולעוד מידע פשוט חפשו בגוגל, לא חסר. |
ציטוט:
בכל מקרה - כמו שאמרו לך אתה יכול להשתמש בטבלת עזר. אפשרות נוספת היא לשמור את זה בדיוק כמו שזה עכשיו אצלך (כסטרינג אחד) ולהשתמש למשל בפסיק כמפריד ואז להשתמש בביטוי רגולרי, אם זה נתמך במסד נתונים שלך, כדי לבדוק אם ערך קיים. |
כל הזמנים הם GMT +2. הזמן כעת הוא 13:38. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ