תכנון מסד נתונים
-
פתרון קצת יותר מסובך:
בטבלה של המוצרים תוסיף עמודה של version לדוגמא:id | version | name | price | size | enabled | ----------------------------------------------- 101| 01 | abc | 100 | 15 | false 101| 02 | def | 150 | 30 | true
כל פעם שיש עריכה של המוצר תשנה את enabled ל false
ותיצור רשומה חדשה עם version +1 ו enabled = trueובטבלת הקניות תוסיף את הערך של version
כשתרצה להציג את רשימת המוצרים תסנן לפי הערך של enabled
-
@upsilon01 אמר בתכנון מסד נתונים:
@chagold
כשהמוצר הוא שירות אז הפרטים כן משתניםצודק.
אבל נר"ל שא"כ עדיף לעשות טבלה נפרדת לversion's (וודאי שלא להחזיק באותה טבלה ID כפול). -
@upsilon01 אמר בתכנון מסד נתונים:
בטבלה של המוצרים תוסיף עמודה של version לדוגמא:
רעיון מעניין, רק שזה מסרבל את הרשומה וגורם לכפילות נתונים.
-
@upsilon01 אמר בתכנון מסד נתונים:
@chagold לא הבנתי איך
(לא הבנתי מה כוונת @מנצפך על זמן, אז אני עונה רק על מה שכתבתי לפני כן)
לעשות טבלה שתעסוק בגרסאות מוצרים, ויהיה שם שדה ID של מוצר ועוד שדה של מס' גרסה. (ועוד מס' שדות לפי הנתונים הדינמיים).
ותמיד כשיגשו למוצרים יהיה אפשר להעלות את כל הגרסאות עם JOIN.
(ואפשר לעשות שבטבלת מוצרים יהיה ג"כ שדה של 'מס' גרסה נוכחית' דהיינו שיכיל id של השדה המתאים מטבלת הגרסאות (ולייבא אותם תמיד עם join), וכך יהיה אפשר להחזיק גרסה נוכחית של כל מוצר) -
@מנצפך
תעשה מוצר שנקראת דקת עבודה (לפי חישוב יחסי)
ובכמות תשים לפי מספר הדקות.
בכלל, כמות + סכום ליחידה + סכום כולל (אם יש) חייב להישמר בDB בכל עסקה מחדש.
אף פעם אל תסמוך על הגדרות המוצר בזה.גם לגבי הטוטל וסכום המעמ אם יש, תמיד תשמור את זה בDB אפילו שאתה יכול לחשב את זה ברגע האמת.
(אני כותב את זה מנסיון ארוך..... ולא משנה כמה נכון וקשיח תאפיין את המוצר שלך. אלו נתונים שאמורים פשוט להישמר גם ביחס לכל עסקה)