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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 03-12-10, 17:22   # 1
Second
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Jul 2006
מיקום: נתניה
גיל: 35
הודעות: 37
שלח הודעה באמצעות MSN אל Second

Second לא מחובר  

שיטת אחסון מידע

כבר הרבה זמן אני חושב על הנושא הזה, ורציתי לשמוע דעות שונות משלי בנושא.
אז ככה, אני צריך לשמור מידע דינאמי שמוגדר בתוך טבלה דו מימדי, בתוך ה-DB שלי.

דוגמא:
אני רוצה לשמור את כל המשחקים שקיימים במחזור מסויים בליגת העל.
לכן אני אמור להגדיר את נתוני המשחק:
  • קבוצה ביתית
  • קבוצת חוץ
  • זמן המשחק
ואני מכניס כמה משחקים ככה שנוצר לי מערך דו מימדי, שמוגדר בסופו ככה:
PHP קוד:
$gameList = array(
    array(
        
'home' => 2,
        
'away' => 1,
        
'time' => 4324144322
    
), array(
        
'home' => 3,
        
'away' => 5,
        
'time' => 3423123123
    
), array(
        
'home' => 4,
        
'away' => 6,
        
'time' => 4324425123
    
)
); 
עכשיו כשאני ניגש למערך ורוצה לשמור אותו ב-DB, יש לי בעיה.
ברור שאני יכול להשתמש ב-JSON כי זה הכי פשוט ונוח אבל זה לא יעיל!
כי הפלט שלו כולל את שמות המשתנים ( כמו home, away ו-time ). ולכן נשמר לי מידע על ה-DB שלכאורה אני לא צריך.

עכשיו אני בונה פונקציה שתטפל בנתונים כאלה ותעזור לצמצם את המידע שנשמר ב-DB למינימום הנדרש. אבל היא עדיין בחיתולים ואני לא יודע עד כמה היא יעילה.

אשמח לשמוע מה אתם חושבים בנושא, ואיך אתם מאחסנים טבלה דו מימדית דינאמית אצלכם באתר.
__________________
  Reply With Quote
ישן 03-12-10, 19:07   # 2
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

אתה מגדיר טבלה של מחזורים.
טבלה של משחקים.
טבלה של קבוצות.

כל משחק מכיל שדה של id של המחזור שלו ושל שתי הקבוצות שמשתתפות.

מאוד פשוט דווקא.
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 03-12-10, 19:30   # 3
Second
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Jul 2006
מיקום: נתניה
גיל: 35
הודעות: 37
שלח הודעה באמצעות MSN אל Second

Second לא מחובר  

דווקא את השיטה הזו אני לא מעדיף.
כבר פירטתי שפונקציה זו היא דינמית, יוצא לי הרבה פעמים להכניס מערכים דו מימדיים.
ואי אפשר לכל אחד לעשות טבלאות על גבי טבלאות..
__________________
  Reply With Quote
ישן 03-12-10, 21:22   # 4
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

1. לא יודע כמה json עדיף פה על serialize. שווה לבדוק את זה ברצפי קוד שונים ולבדוק את הגדלים השונים שמתקבלים.
2. במקום home, away, time תוכל להשתמש ב0,1,2, בידיעה מה כל מספר מייצג. ככה אפילו לא תצטרך את המספור - הרי ברור שהאיבר הראשון הוא home, השני away והאחרון time.

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

בהצלחה
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 05-12-10, 08:56   # 5
~The_Sultan~
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2008
הודעות: 771

~The_Sultan~ לא מחובר  

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

PHP קוד:
$i 0;
foreach (
$array as $key) {
    
$results $key[$i]['home']."|".$key[$i]['away']."|".$key[$i]['time'];
    
mysql_query...
    
$i++;

בשאילתה אתה מכניס את התוצאות ששמורות לך לתוך שורה אחת במסד, עם עמודה אחת. אחרי זה, כשאתה צריך להשתמש בתוצאות, אתה משתמש בפונקציה explode.

אפשרות שניה, תשתמש באותה לולאת foreach רק שתעשה עוד לולאת foreach בתוך, ותכניס את כל הנתונים של התת-מערך לתוך 3 עמודות.

בהצלחה,
חג שמח.
  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. הזמן כעת הוא 05:10.

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