דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. תכנון מסד נתונים

תכנון מסד נתונים

מתוזמן נעוץ נעול הועבר תכנות
20 פוסטים 7 כותבים 1.1k צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מנצפךמ מנותק
    מנצפךמ מנותק
    מנצפך
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טבלת מוצרים וטבלת רכישות.
    בכל רכישה מצוין איזה מוצר נרכש (לפי ID של המוצר).

    הבעיה היא מה קורה שכשמשנים את פרטי המוצר, כולל מחיר שם ואפילו מהות (נניח מוצר וירטואלי של ספק אינטרנט, שאפשר לשנות אותו מ 15 MB ל 30 MB).

    מה שקורה שאחרי שיש שינוי כזה אי אפשר לעבד את הנתונים (נניח לבדוק מהו המוצר הכי פופולרי).

    מה כדאי לעשות? אולי בכל רכישה להוסיף את כל הנתונים של המוצר?

    ח תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #2

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

      לגבי מחיר, ודאי ששומרים את המחיר יחד עם הקניה.

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      תגובה 1 תגובה אחרונה
      2
      • מנצפךמ מנותק
        מנצפךמ מנותק
        מנצפך
        כתב ב נערך לאחרונה על ידי
        #3

        @dovid וודאי שאני שומר את המחיר הכללי, שאלתי היתה על שמירת המחיר של כל מוצר ומוצר.
        תודה על תשובתך.

        dovidD תגובה 1 תגובה אחרונה
        0
        • מנצפךמ מנצפך

          @dovid וודאי שאני שומר את המחיר הכללי, שאלתי היתה על שמירת המחיר של כל מוצר ומוצר.
          תודה על תשובתך.

          dovidD מנותק
          dovidD מנותק
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          @מנצפך אכן ע"ז עניתי, על כל פריט קנוי יש שורה עם המזהה מוצר + מחיר אקטואלי.

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          תגובה 1 תגובה אחרונה
          4
          • upsilon01U מנותק
            upsilon01U מנותק
            upsilon01
            כתב ב נערך לאחרונה על ידי upsilon01
            #5

            @מנצפך

            פתרון קצת יותר מסובך:
            בטבלה של המוצרים תוסיף עמודה של 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

            מנצפךמ תגובה 1 תגובה אחרונה
            2
            • מנצפךמ מנצפך

              יש לי טבלת מוצרים וטבלת רכישות.
              בכל רכישה מצוין איזה מוצר נרכש (לפי ID של המוצר).

              הבעיה היא מה קורה שכשמשנים את פרטי המוצר, כולל מחיר שם ואפילו מהות (נניח מוצר וירטואלי של ספק אינטרנט, שאפשר לשנות אותו מ 15 MB ל 30 MB).

              מה שקורה שאחרי שיש שינוי כזה אי אפשר לעבד את הנתונים (נניח לבדוק מהו המוצר הכי פופולרי).

              מה כדאי לעשות? אולי בכל רכישה להוסיף את כל הנתונים של המוצר?

              ח מנותק
              ח מנותק
              חבלזון
              כתב ב נערך לאחרונה על ידי חבלזון
              #6

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

              upsilon01U תגובה 1 תגובה אחרונה
              0
              • ח חבלזון

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

                upsilon01U מנותק
                upsilon01U מנותק
                upsilon01
                כתב ב נערך לאחרונה על ידי
                #7

                @חבלזון
                לדוגמא אם אתה מפתח מערכת לחנויות ובעל החנות עורך את פרטי המוצר
                אז ה id נשאר אותו הדבר

                תגובה 1 תגובה אחרונה
                0
                • chagoldC מנותק
                  chagoldC מנותק
                  chagold
                  כתב ב נערך לאחרונה על ידי
                  #8

                  גם אצל בעל החנות לא אמור להיות מוצרים משתנים. וכמו שאמרו כל מוצר יש לו את המהות שלו ואי"צ לגדיר מהות מוצר (לאותו ID) יותר מפעם אחת

                  upsilon01U תגובה 1 תגובה אחרונה
                  0
                  • chagoldC chagold

                    גם אצל בעל החנות לא אמור להיות מוצרים משתנים. וכמו שאמרו כל מוצר יש לו את המהות שלו ואי"צ לגדיר מהות מוצר (לאותו ID) יותר מפעם אחת

                    upsilon01U מנותק
                    upsilon01U מנותק
                    upsilon01
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @chagold
                    כשהמוצר הוא שירות אז הפרטים כן משתנים

                    chagoldC תגובה 1 תגובה אחרונה
                    2
                    • upsilon01U upsilon01

                      @chagold
                      כשהמוצר הוא שירות אז הפרטים כן משתנים

                      chagoldC מנותק
                      chagoldC מנותק
                      chagold
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @upsilon01 אמר בתכנון מסד נתונים:

                      @chagold
                      כשהמוצר הוא שירות אז הפרטים כן משתנים

                      צודק.
                      אבל נר"ל שא"כ עדיף לעשות טבלה נפרדת לversion's (וודאי שלא להחזיק באותה טבלה ID כפול).

                      upsilon01U תגובה 1 תגובה אחרונה
                      0
                      • upsilon01U upsilon01

                        @מנצפך

                        פתרון קצת יותר מסובך:
                        בטבלה של המוצרים תוסיף עמודה של 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

                        מנצפךמ מנותק
                        מנצפךמ מנותק
                        מנצפך
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @upsilon01 אמר בתכנון מסד נתונים:

                        בטבלה של המוצרים תוסיף עמודה של version לדוגמא:

                        רעיון מעניין, רק שזה מסרבל את הרשומה וגורם לכפילות נתונים.

                        תגובה 1 תגובה אחרונה
                        0
                        • מנצפךמ מנותק
                          מנצפךמ מנותק
                          מנצפך
                          כתב ב נערך לאחרונה על ידי מנצפך
                          #12

                          המוצר הוא: זמן.
                          ולכן יכול להשתנות בין 30 דקות ל 35 דקות, נניח.
                          ואין זה מהות אחרת.

                          אני יכול לא לאפשר עריכת מוצר.
                          זו דווקא אפשרות שלא נראית לי הזויה בכלל.

                          השינויים לא מתבצעים בתדירות גבוהה, אם בכלל.

                          clickoneC תגובה 1 תגובה אחרונה
                          0
                          • chagoldC chagold

                            @upsilon01 אמר בתכנון מסד נתונים:

                            @chagold
                            כשהמוצר הוא שירות אז הפרטים כן משתנים

                            צודק.
                            אבל נר"ל שא"כ עדיף לעשות טבלה נפרדת לversion's (וודאי שלא להחזיק באותה טבלה ID כפול).

                            upsilon01U מנותק
                            upsilon01U מנותק
                            upsilon01
                            כתב ב נערך לאחרונה על ידי
                            #13

                            @chagold לא הבנתי איך

                            chagoldC תגובה 1 תגובה אחרונה
                            0
                            • upsilon01U upsilon01

                              @chagold לא הבנתי איך

                              chagoldC מנותק
                              chagoldC מנותק
                              chagold
                              כתב ב נערך לאחרונה על ידי chagold
                              #14

                              @upsilon01 אמר בתכנון מסד נתונים:

                              @chagold לא הבנתי איך

                              (לא הבנתי מה כוונת @מנצפך על זמן, אז אני עונה רק על מה שכתבתי לפני כן)

                              לעשות טבלה שתעסוק בגרסאות מוצרים, ויהיה שם שדה ID של מוצר ועוד שדה של מס' גרסה. (ועוד מס' שדות לפי הנתונים הדינמיים).
                              ותמיד כשיגשו למוצרים יהיה אפשר להעלות את כל הגרסאות עם JOIN.
                              (ואפשר לעשות שבטבלת מוצרים יהיה ג"כ שדה של 'מס' גרסה נוכחית' דהיינו שיכיל id של השדה המתאים מטבלת הגרסאות (ולייבא אותם תמיד עם join), וכך יהיה אפשר להחזיק גרסה נוכחית של כל מוצר)

                              תגובה 1 תגובה אחרונה
                              0
                              • מנצפךמ מנצפך

                                המוצר הוא: זמן.
                                ולכן יכול להשתנות בין 30 דקות ל 35 דקות, נניח.
                                ואין זה מהות אחרת.

                                אני יכול לא לאפשר עריכת מוצר.
                                זו דווקא אפשרות שלא נראית לי הזויה בכלל.

                                השינויים לא מתבצעים בתדירות גבוהה, אם בכלל.

                                clickoneC מנותק
                                clickoneC מנותק
                                clickone
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @מנצפך
                                תעשה מוצר שנקראת דקת עבודה (לפי חישוב יחסי)
                                ובכמות תשים לפי מספר הדקות.
                                בכלל, כמות + סכום ליחידה + סכום כולל (אם יש) חייב להישמר בDB בכל עסקה מחדש.
                                אף פעם אל תסמוך על הגדרות המוצר בזה.

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

                                אין טסט כמו פרודקשן.

                                המייל שלי urivpn@gmail.com

                                מנצפךמ תגובה 1 תגובה אחרונה
                                3
                                • clickoneC clickone

                                  @מנצפך
                                  תעשה מוצר שנקראת דקת עבודה (לפי חישוב יחסי)
                                  ובכמות תשים לפי מספר הדקות.
                                  בכלל, כמות + סכום ליחידה + סכום כולל (אם יש) חייב להישמר בDB בכל עסקה מחדש.
                                  אף פעם אל תסמוך על הגדרות המוצר בזה.

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

                                  מנצפךמ מנותק
                                  מנצפךמ מנותק
                                  מנצפך
                                  כתב ב נערך לאחרונה על ידי
                                  #16

                                  @clickone אמר בתכנון מסד נתונים:

                                  תעשה מוצר שנקראת דקת עבודה (לפי חישוב יחסי)
                                  ובכמות תשים לפי מספר הדקות.

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

                                  clickoneC תגובה 1 תגובה אחרונה
                                  0
                                  • מנצפךמ מנצפך

                                    @clickone אמר בתכנון מסד נתונים:

                                    תעשה מוצר שנקראת דקת עבודה (לפי חישוב יחסי)
                                    ובכמות תשים לפי מספר הדקות.

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

                                    clickoneC מנותק
                                    clickoneC מנותק
                                    clickone
                                    כתב ב נערך לאחרונה על ידי
                                    #17

                                    @מנצפך למה?
                                    זה נחשב מוצר אחר
                                    לדוגמא:

                                    • דקת פיתוח = 3 ש"ח
                                    • דקת תמיכה 1 ש"ח
                                    • דקת שיחה 20 אג'

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

                                    וזה לא מונע ממך לחשב כמה שעות היה בפועל לפיתוח, תמיכה וכו'

                                    אין טסט כמו פרודקשן.

                                    המייל שלי urivpn@gmail.com

                                    תגובה 1 תגובה אחרונה
                                    1
                                    • upsilon01U מנותק
                                      upsilon01U מנותק
                                      upsilon01
                                      כתב ב נערך לאחרונה על ידי
                                      #18

                                      אבל נותן השרות מוכר חבילות של דקות במחיר משתנה

                                      דקת פיתוח = 1 שח
                                      15 דקות = 6 שח
                                      שעה = 15 שח

                                      WWWW תגובה 1 תגובה אחרונה
                                      1
                                      • upsilon01U upsilon01

                                        אבל נותן השרות מוכר חבילות של דקות במחיר משתנה

                                        דקת פיתוח = 1 שח
                                        15 דקות = 6 שח
                                        שעה = 15 שח

                                        WWWW מנותק
                                        WWWW מנותק
                                        WWW
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        @upsilon01 אז עושים הנחה.
                                        כמו במכולת 3 ב 10 🙂

                                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                        upsilon01U תגובה 1 תגובה אחרונה
                                        1
                                        • WWWW WWW

                                          @upsilon01 אז עושים הנחה.
                                          כמו במכולת 3 ב 10 🙂

                                          upsilon01U מנותק
                                          upsilon01U מנותק
                                          upsilon01
                                          כתב ב נערך לאחרונה על ידי
                                          #20

                                          @www
                                          ואז צריך להחזיק טבלה של הנחות

                                          מבחינת לוגיקה יהיה נכון יותר
                                          אבל מבחינת ביצועים ככל שיש פחות קשרים בין טבלאות כך טוב יותר

                                          תגובה 1 תגובה אחרונה
                                          2
                                          תגובה
                                          • תגובה כנושא
                                          התחברו כדי לפרסם תגובה
                                          • מהישן לחדש
                                          • מהחדש לישן
                                          • הכי הרבה הצבעות


                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום