שלח תשובה

זירת השאלות

393
צפיות
18
תשובות

שאלה לגבי מסדי נתונים:

,‏ 1 באוקטובר, 2004

שלום, סופ"ש נעים!

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

יש טבלה של הזמנות ושם אני רוצה לשים את סכום מחיר הכולל של ההזמנה – לכל הזמנה יכול להיות מספר מוצרים שונים בכמויות שונות.

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

בנוסף, לכל הזמנה יש לקוח וספק ששם כתוב את מספר הלקוח, הייתי רוצה שאני אראה במסד כזה + שיפתח לי את הפרטים של הלקוחספק…

תודה מראש!

טל.

תגיות:

18 תשובות

  1. BuildHome הגיב:

    קצת בלבלת
    תן דוגמא של טבלת המוצרים, טבלת ושל טבלת ההזמנות שאמורה להיראות (לשם הדוגמא).
    אולי זה יהיה יותר מובן.

  2. Just-Tal הגיב:

    אוקיי סורי,
    יש לי טבלה של הזמנות:

    orderid, ordercustomer, ordersupliyer, orderdate, orderprice

    ויש לי טבלה של מוצרים שהוזמנו:

    id, orderid, productid, productprice, productsum, amountprice

    עכשיו ככה:

    amountprice = productprice*productsum – זה בעצם מחיר שורה של מוצר.

    לכל הזמנה יכולים להיות כמה מוצרים שהוזמנו בעצם יש קשר גומלין בין ה orderid.

    אני רוצה לשים בטבלת ההזמנות את המחיר הכולל של כלל המוצרים שהוזמנו באותה הזמנה. כלומר:

    לחפש בטבלת המוצרים את כל המוצרים שמספר ההזמנה שלהם שווה ל orderid

    ולסכום את כל ה amountprice שלהם ושהוא יתעדכן אוטומטי במסד.

    תודה מראששש!

    טל.

  3. Just-Tal הגיב:

    כמו כן אני רוצה שה…
    amountprice יתעדכן אוטומטי ע"פ מחיר המוצר בשורה וכמות.

  4. BuildHome הגיב:

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

  5. Just-Tal הגיב:

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

    כלומר כמו שבפורום יש הודעת אב והודעת בן… בדיוק ככה…

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

    נגיד בשדה אחד יש X אני רוצה שבשדה אחר בטבלה אחרת יהיה 5*X

    שאת ה X הוא לוקח מהשדה הראשון…

    וכך אם X = 2 אז בשדה השני יהיה 10…

  6. Just-Tal הגיב:

    לא, עדיף שלא…
    אני בטוח שיש דרך… פשוט אני לא מתמצא ממש טוב באקסס…

  7. אתה יכול לעשות ככה:
    כשתשנה את הערך של X (בדוגמה שהבאת), תעדכן תמיד גם את השדה שבתוכו יש X*5…
    אבל בעיקרון, אני מצטרף לבילד… השאלה לא כל כך ברורה..

  8. Just-Tal הגיב:

    ככה תראו:
    בואו נגיד אני עובד רק עם אקסס בלי ASP.

    אני עושה טבלה X ובה יש שדה בשם NUM

    יש טבלה Y ובה שדה שקוראים לו SUM

    עכשיו אני רוצה שבטבלה Y השדה SUM יהיה שווה ל NUM*5

    כלומר שאם בטבלה X יש רשומה שבה id, NUM
    id = 1
    num = 7

    בטבלה Y ברשומה שבה id = 1,
    SUM יהיה שווה ל NUM*5 כלומר במקרה הזה 5*7 = 35

    הבנתם?

    ד"א תודה על העזרה!

  9. MasterMind הגיב:

    הבנתי אותך….
    נראה לי שאתה יכול לעשות קשרי גומלין  ובהגדרות שלו להכפיל פי 5
    אבל אני לא בטוח שזה נכון …..

  10. ניר טייב הגיב:

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

  11. MasterMind הגיב:

    וואלה…צודק
    גם אני לא מבין למה אתה(טל) לא רוצה לעשות את זה ברמת הקוד?
    זה הרבה יותר קל…..

  12. ניר טייב הגיב:

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

שלח תשובה