393
צפיות
צפיות
18
תשובות
תשובות
שאלה לגבי מסדי נתונים:
שלום, סופ"ש נעים!
יש לי מספר טבלאות במסד הנתונים.
יש טבלה אחת של מוצרים שלכל מוצר יש מספר הזמנה וסכום (מחיר מוצר*כמות)
יש טבלה של הזמנות ושם אני רוצה לשים את סכום מחיר הכולל של ההזמנה – לכל הזמנה יכול להיות מספר מוצרים שונים בכמויות שונות.
אני רוצה שבטבלת ההזמנות הוא יעדכן לי אוטומטי את סכום כל מחיר השורה של המוצרים. איך אני עושה זאת ?
בנוסף, לכל הזמנה יש לקוח וספק ששם כתוב את מספר הלקוח, הייתי רוצה שאני אראה במסד כזה + שיפתח לי את הפרטים של הלקוחספק…
תודה מראש!
טל.
18 תשובות
שכחתי לציין מדובר במסד אקסס.
קצת בלבלת
תן דוגמא של טבלת המוצרים, טבלת ושל טבלת ההזמנות שאמורה להיראות (לשם הדוגמא).
אולי זה יהיה יותר מובן.
אוקיי סורי,
יש לי טבלה של הזמנות:
orderid, ordercustomer, ordersupliyer, orderdate, orderprice
ויש לי טבלה של מוצרים שהוזמנו:
id, orderid, productid, productprice, productsum, amountprice
עכשיו ככה:
amountprice = productprice*productsum – זה בעצם מחיר שורה של מוצר.
לכל הזמנה יכולים להיות כמה מוצרים שהוזמנו בעצם יש קשר גומלין בין ה orderid.
אני רוצה לשים בטבלת ההזמנות את המחיר הכולל של כלל המוצרים שהוזמנו באותה הזמנה. כלומר:
לחפש בטבלת המוצרים את כל המוצרים שמספר ההזמנה שלהם שווה ל orderid
ולסכום את כל ה amountprice שלהם ושהוא יתעדכן אוטומטי במסד.
תודה מראששש!
טל.
כמו כן אני רוצה שה…
amountprice יתעדכן אוטומטי ע"פ מחיר המוצר בשורה וכמות.
קצת קשה להבין אותך
מה ההבדל בין טבלת ההזמנות לבין טבלת ההזמנות שהוזמנו?
התכוונתי שתציג דוגמא ויז'ואלית על מנת שאוכל לצפות בפלט שאמור להיות לבסוף במסד הנתונים.
אין לי דרך עכשיו להראות אני אסביר..
יש לי טבלה של הזמנות
ויש טבלה של המוצרים של ההזמנות
כלומר כמו שבפורום יש הודעת אב והודעת בן… בדיוק ככה…
תאמת זה לא עקרוני כיצד המסד בנוי אני פשוט רוצה לדעת איך אני עושה ששדה במסד הנתונים יתעדכן אוטומטית בהתאם לשדה אחר… מבין?
נגיד בשדה אחד יש X אני רוצה שבשדה אחר בטבלה אחרת יהיה 5*X
שאת ה X הוא לוקח מהשדה הראשון…
וכך אם X = 2 אז בשדה השני יהיה 10…
ולעדכן זאת דרך ASP לא יהיה טוב ?
לא, עדיף שלא…
אני בטוח שיש דרך… פשוט אני לא מתמצא ממש טוב באקסס…
אתה יכול לעשות ככה:
כשתשנה את הערך של X (בדוגמה שהבאת), תעדכן תמיד גם את השדה שבתוכו יש X*5…
אבל בעיקרון, אני מצטרף לבילד… השאלה לא כל כך ברורה..
ככה תראו:
בואו נגיד אני עובד רק עם אקסס בלי 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
הבנתם?
ד"א תודה על העזרה!
הבנתי אותך….
נראה לי שאתה יכול לעשות קשרי גומלין ובהגדרות שלו להכפיל פי 5
אבל אני לא בטוח שזה נכון …..
אין ממש קשר לקשרי גומלין
שדה ב-DB לא יכול להכיל ערכים
דינמיים.
במקום זה אפשר לעשות VIEW שיחשב את השאר ובכך גם לייעל את הביצועים
וואלה…צודק
גם אני לא מבין למה אתה(טל) לא רוצה לעשות את זה ברמת הקוד?
זה הרבה יותר קל…..
בד"כ רצוי לעשות את הדברים ברמת המסד
ושרמת הקוד (ASP, PHP…) תשמש רק ל"תקשורת" העברת נתונים
גם יכול להיות שהפרוייקט הזה הוא לא פרוייקט שדורש אינטרנט אלא רק מסד (אקסס לא נועד רק בשביל האינטרנט)
אתה יכול להסביר מזה View? בבקשה?
תשובה
תודה.!.