![]() |
# 1 |
חבר מתקדם
|
קטגוריה כפולה -php sql
אני אני עושה קטגוריה כפולה,
נניח יש את הסרט "ללכת על הכל", הוא גם סרט קומדיה וגם סרט מתח, אני רוצה שאני אוכל למצוא אותו בשתי הקטגוריות, איך אני עושה את זה ב-sql? (לצורך העניין הסרט יכול להימצא ביותר מ-2 קטגוריות) תודה. |
![]() |
![]() |
# 2 |
חבר בקהילה
|
אני מצליח לחשוב על 3 שיטות שונות
1. אם ידועות לך כל הקטגוריות אז פשוט תעשה עמודה לכל קטגוריה ותכניס TRUE או FALSE אם הסרט שיך לאותה קטגוריה יתרונות: חיפוש מהיר, אפשר לעשות אינדקסים לקטגוריות, חיסכון בשורות חסרונות: כדי להוסיף קטגוריה מוסיפים עמודה לכל הטבלה של הסרטים, אם יש הרבה קטגוריות יהיו הרבה עמודות וזה לא אלגנטי בכלל וכו' 2. יצירת טבלה נוספת של קטגוריות ובטבלת הסרטים להכניס מחרוזת של שיוך לקטגוריה למשל 1,3,5,6 יתרונות: חיסכון בשורות ועמודות בטבלה, אפשרות עריכה וניהול של קטגוריות חסרון: שאילתות מסובכות צריך לנתח את המחרוזת בכדי להבין לאן שיך כל סרט, זמן ריצה של שאילתא איטי 3. עבור כל קטגוריה שורה של סרט למשל אבטר מתח, שורה הבאה אבטר פעולה וכו' יתרונות: שאילתות מהירות, פשטות השאילתא, אלגנטי יחסית חסרונות: ניפוח בסיס הנתונים, פרטים חוזרים על עצמם אין נירמול נכון של בסיס הנתונים. תבחר מה שמתאים לך לפי יתרונות מול חסרונות. |
![]() |
![]() |
# 3 |
חבר מתקדם
|
כרגע המערכת שלי עובדת על משהו בסנון השיטה השנייה שלך,לכל קטגוריה יש קוד מזהה , Cc - קומדיה, Ct.
ובמשתנה mCategory הם מופרדים במקפים "Ct-Cc". לדוגמא כדי לשלוף את כל סרטי המתח אני עושה: PHP קוד:
|
![]() |
![]() |
# 4 |
חבר בקהילה
|
אני גם משתמש בשיטה הזו, נסה לשלב את הבדיקה של הקטגוריה דרך השאילתא זה הכי מהיר ויעיל
תשתמש בLIKE ובCASE |
![]() |
![]() |
# 5 |
חבר מתקדם
|
אתה יכול לעשות בחירה מרובה, או כמשכניסים את הסרט, ואז יהיה נגיד Ct,Cc במסד
והוא יהיה שייך ל-2 הקטגוריות. או בחירה מרובה בשאילתא, PHP קוד:
|
![]() |
![]() |
# 7 |
עסק רשום [?]
|
טבלאות מקושרות זה הפתרון הכי טוב..
נגיד ויש לך ככה: - טבלה של ז'אנרים (מתח,קומדיה,אקשן...) - טבלה של סרטים אתה יוצר טבלה נוספת וצריך להיות בה 3 שדות ID יחודי לכל רשומה שדה שיכיל את ה ID של הז'אנר שדה שיכיל את ה ID של הסרט אם לדוגמא יש לסרט כלשהו 3 ז'אנרים מתח/קומדיה/רומנטיקה אתה מכניס לטבלה הזאת 3 רשומות שבכל רשומה כזאת אתה מכניס את ה ID של הסרט ואת ה ID של הז'אנר מקווה שהבנת את הכוונה.. |
![]() |
![]() |
# 8 |
חבר בקהילה
|
Deagly, קצת מוזר לפנות לבנאדם בשם הזה אבל בסדר
![]() זה פיתרון, אבל הכי טוב אני לא בטוח. הוא נשמע לי נורא לא יעיל. הוא מוסיף עומס על המסד נתונים פעמיים, גם בכמות הנתונים (התווספה לנו טבלה שלמה), וגם בקריאה (כאשר צריך לקרוא ל2-3 רשומות יותר כל פעם) |
![]() |
![]() |
# 9 |
חבר מתקדם
|
אתה יכול לעשות מה ש- Deagly אמר, אבל רק במקום 3 רשומות, לעשות ב ID של הז'אנר מופרד בפסיק כל ז'אנר,
או מה ש xPerfection אמר שזאת גם שיטה טובה, והכי יעילה מכל השיטות שהוצעו כאן. |
![]() |
![]() |
# 10 |
חבר מתקדם
|
קראתי קצת מאמרים באנגלית,
מסתבר שיש משתנה מסוג ENUM שנוצר לכאלה מטרות, קראתי עליו, אבל לא ממש הבנתי איך עובדים איתו. מישהו התנסה איתו? |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|