הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 19-06-10, 14:12   # 1
HOLD
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2008
הודעות: 623

HOLD לא מחובר  

קטגוריה כפולה -php sql

אני אני עושה קטגוריה כפולה,

נניח יש את הסרט "ללכת על הכל",
הוא גם סרט קומדיה וגם סרט מתח,

אני רוצה שאני אוכל למצוא אותו בשתי הקטגוריות,
איך אני עושה את זה ב-sql? (לצורך העניין הסרט יכול להימצא ביותר מ-2 קטגוריות)

תודה.
  Reply With Quote
ישן 19-06-10, 14:50   # 2
benb
חבר בקהילה
 
benb's Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2010
הודעות: 138

benb לא מחובר  

אני מצליח לחשוב על 3 שיטות שונות
1. אם ידועות לך כל הקטגוריות אז פשוט תעשה עמודה לכל קטגוריה ותכניס TRUE או FALSE אם הסרט שיך לאותה קטגוריה
יתרונות: חיפוש מהיר, אפשר לעשות אינדקסים לקטגוריות, חיסכון בשורות
חסרונות: כדי להוסיף קטגוריה מוסיפים עמודה לכל הטבלה של הסרטים, אם יש הרבה קטגוריות יהיו הרבה עמודות וזה לא אלגנטי בכלל וכו'
2. יצירת טבלה נוספת של קטגוריות ובטבלת הסרטים להכניס מחרוזת של שיוך לקטגוריה למשל 1,3,5,6
יתרונות: חיסכון בשורות ועמודות בטבלה, אפשרות עריכה וניהול של קטגוריות
חסרון: שאילתות מסובכות צריך לנתח את המחרוזת בכדי להבין לאן שיך כל סרט, זמן ריצה של שאילתא איטי
3. עבור כל קטגוריה שורה של סרט למשל אבטר מתח, שורה הבאה אבטר פעולה וכו'
יתרונות: שאילתות מהירות, פשטות השאילתא, אלגנטי יחסית
חסרונות: ניפוח בסיס הנתונים, פרטים חוזרים על עצמם אין נירמול נכון של בסיס הנתונים.
תבחר מה שמתאים לך לפי יתרונות מול חסרונות.
  Reply With Quote
ישן 19-06-10, 14:59   # 3
HOLD
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2008
הודעות: 623

HOLD לא מחובר  

כרגע המערכת שלי עובדת על משהו בסנון השיטה השנייה שלך,לכל קטגוריה יש קוד מזהה , Cc - קומדיה, Ct.

ובמשתנה mCategory הם מופרדים במקפים "Ct-Cc".

לדוגמא כדי לשלוף את כל סרטי המתח אני עושה:
PHP קוד:
mCategory Like %Ct
חשבתי שזאת שיטה לא יעילה ושיש משהו יותר טוב.
  Reply With Quote
ישן 19-06-10, 15:05   # 4
benb
חבר בקהילה
 
benb's Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2010
הודעות: 138

benb לא מחובר  

אני גם משתמש בשיטה הזו, נסה לשלב את הבדיקה של הקטגוריה דרך השאילתא זה הכי מהיר ויעיל
תשתמש בLIKE ובCASE
  Reply With Quote
ישן 19-06-10, 19:53   # 5
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

אתה יכול לעשות בחירה מרובה, או כמשכניסים את הסרט, ואז יהיה נגיד Ct,Cc במסד
והוא יהיה שייך ל-2 הקטגוריות.
או בחירה מרובה בשאילתא,
PHP קוד:
mCategory Like %Ct% OR %Cc
  Reply With Quote
ישן 19-06-10, 20:24   # 6
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

רעיון דומה, אך עדיף:
אם הקטגוריות שלך מזוהות ע"י מס' ייחודי (ID),
תוסיף לכל סרט עמודה של cat ושמה תכניס ערך בסגנון: 3,16,7.
שזה אומר שהסרט שייך לקט' מס' 3, לקט' מס' 16 ולקט' מס' 7.

ככה בד"כ עושים את זה.
  Reply With Quote
ישן 19-06-10, 20:24   # 7
Deagly
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 586

Deagly לא מחובר  

טבלאות מקושרות זה הפתרון הכי טוב..
נגיד ויש לך ככה:
- טבלה של ז'אנרים (מתח,קומדיה,אקשן...)
- טבלה של סרטים

אתה יוצר טבלה נוספת וצריך להיות בה 3 שדות
ID יחודי לכל רשומה
שדה שיכיל את ה ID של הז'אנר
שדה שיכיל את ה ID של הסרט

אם לדוגמא יש לסרט כלשהו 3 ז'אנרים מתח/קומדיה/רומנטיקה
אתה מכניס לטבלה הזאת 3 רשומות שבכל רשומה כזאת אתה מכניס את ה ID של הסרט ואת ה ID של הז'אנר

מקווה שהבנת את הכוונה..
  Reply With Quote
ישן 19-06-10, 20:41   # 8
astricks
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 36
הודעות: 95

astricks לא מחובר  

Deagly, קצת מוזר לפנות לבנאדם בשם הזה אבל בסדר
זה פיתרון, אבל הכי טוב אני לא בטוח. הוא נשמע לי נורא לא יעיל. הוא מוסיף עומס על המסד נתונים פעמיים, גם בכמות הנתונים (התווספה לנו טבלה שלמה), וגם בקריאה (כאשר צריך לקרוא ל2-3 רשומות יותר כל פעם)
  Reply With Quote
ישן 19-06-10, 22:16   # 9
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

אתה יכול לעשות מה ש- Deagly אמר, אבל רק במקום 3 רשומות, לעשות ב ID של הז'אנר מופרד בפסיק כל ז'אנר,
או מה ש xPerfection אמר שזאת גם שיטה טובה, והכי יעילה מכל השיטות שהוצעו כאן.
  Reply With Quote
ישן 21-06-10, 02:19   # 10
HOLD
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2008
הודעות: 623

HOLD לא מחובר  

קראתי קצת מאמרים באנגלית,
מסתבר שיש משתנה מסוג ENUM שנוצר לכאלה מטרות, קראתי עליו, אבל לא ממש הבנתי איך עובדים איתו.

מישהו התנסה איתו?
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 18:00.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ