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

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

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

מבנה נתונים נכון של רשומת הזמנה

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 3 כותבים 224 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מומחה באקססמ
    מומחה באקססמ
    מומחה באקסס
    כתב ב נערך לאחרונה על ידי מומחה באקסס
    #1

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

    OdedDvirO תגובה 1 תגובה אחרונה
    0
    • מומחה באקססמ מומחה באקסס

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

      OdedDvirO
      OdedDvirO
      OdedDvir
      כתב ב נערך לאחרונה על ידי OdedDvir
      #2

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

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

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

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

      תגובה 1 תגובה אחרונה
      6
      • א
        א
        אבי
        כתב ב נערך לאחרונה על ידי
        #3

        @מומחה-באקסס

        @odeddvir אמר בהירארכית מסד נתונים:

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

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

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

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

        למעשה, בדוגמא שהבאת, אפשר כך ואפשר כך, אין הבדל מהותי, בדוגמאות אחרות, נכון לפעול על פי הנ"ל.

        (אם שאלת כאן, למה שאלת גם בפרוג... יהודה ועוד לקרא?)

        OdedDvirO תגובה 1 תגובה אחרונה
        4
        • א אבי

          @מומחה-באקסס

          @odeddvir אמר בהירארכית מסד נתונים:

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

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

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

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

          למעשה, בדוגמא שהבאת, אפשר כך ואפשר כך, אין הבדל מהותי, בדוגמאות אחרות, נכון לפעול על פי הנ"ל.

          (אם שאלת כאן, למה שאלת גם בפרוג... יהודה ועוד לקרא?)

          OdedDvirO
          OdedDvirO
          OdedDvir
          כתב ב נערך לאחרונה על ידי
          #4

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

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

          עיינתי שוב וראיתי שהצדק איתך:

          במקביל טבלת 'מוצרים' המכילה מוצרים שהוזמנו עם קוד הזמנה (מקושר לטבלת 'הזמנות'), כמות, מחיר ליחידה, מחיר כולל

          במקרה הזה אני מצטרף לכל הנאמר בתשובה שלך.

          תגובה 1 תגובה אחרונה
          0

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

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

          בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

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


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

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

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