תיכנון טבלאות במסד נתונים

yair24

Member
תיכנון טבלאות במסד נתונים

שלום, אני מקווה שהשאלה קשורה לפורום הזה אם לא אז תמחקו... יש לי טבלה שיש בה את העמודות הבאות: USERID,RANK,DELTA לכל USER יש RANK מסוים והRANK הזה משתנה פעם ביום. הוא משתנה בצורה הבאה: UPDATE USERS SET RANK=RANK+DELTA WHERE 1 אני מעוניין לשמור מעקב על הRANK של 3 ימים אחרונים וביום הרביעי אני רוצה למחוק את היום הראשון ולשים RANK חדש בצורה כזו שכל פעם יש לי מעקב על שלושה ימים אחרונים. חשבתי לעשות טבלה נפרדת עם העמודות הבאות: USERID RANK ולעבוד על הטבלה הזו כל יום, כלומר להוסיף לה רשומות ולמחוק את הרשומות הישנות של כל משתמש, בצורה כזו שתמיד יישארו שלושת הרשומות הכי חדשות של כל משתמש. אני מניח שיש מערכות ומתכנתים שכבר נתקלו בצורך לעשות דברים כאלה והייתי רוצה לדעת האם יש דרך יותר נכונה לעשות את זה מבחינת מהירות העידכון של המסד, בהנחה שלא מדובר רק על שלושה ימים אחורה אלא על 10 ימים ובהנחה שמספר המשתמשים הוא גדול מאוד. יאיר
 

duducohn

New member
תכנות טבלאות

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

yair24

Member
תשובה:

לא זכור לי שרשמתי משהו על תיכנות כזה או אחר... זה אפליקצית אינטרנט בPHP. כמות משתמשים גדולה מאוד זה 10000 לצורך העניין. נחשוב: אם יש לי מעל 10000 משתמשים ולכל אחד אני משנה את הRANK ואז מכניס רשומה חדשה לתוך הטבלה השניה שרשמתי (שזה הRANK לפני שהוא השתנה) אז את הטבלה הראשונה אני משנה במכה אחת דרך SQL. לטבלה השניה אני צריך להכניס רשומות לפי מספר המשתמשים וזה כבר PHP עם לולאת WHILE שרצה לפי מספר המשתמשים אם יש 10000 זה אומר הכנסת 10000 רשומות לתוך טבלה בתוך לולאה והשאלה היא כמה זמן זה לוקח...
 

Gaus

New member
מה אתה רוצה לעשות עם הרשומות הישנות

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

yair24

Member
כן,

יש אפשרות שבעתיד מספר הרשומות ישתנה מ3 ליותר למשל ל10 האמת שכרגע חשבתי כבר על משהו: אני לא אגביל את הרשומות האלה. אני אשים בלי סוף וכל משתמש שירצה לראות את הרשומה שלו ייכנס ויראה את ה10 רשומות האחרונות שהוא הכניס (יש אפשרות כזאת בMYSQL)
 

duducohn

New member
קטן עליו (על המחשב)

בכמות כזו של רשומות - 10000, אם החומרה היא סבירה, אז זמני העיבוד הם קטנים.
 

yair24

Member
אתה אומר

קודם נגיע ל10000 אחרי זה נחצה את הגשר... :)
 

duducohn

New member
אני אומר

שגם כמות של 200000 רשומות זה "קטן" על החומרות הקיימות היום אם אתה מבצע עיבוד באמצעות לולאה.
 

yair24

Member
דרושים בטא טסטרס

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