שאלה בתכנון של DB

TheWiseGuy

New member
שאלה בתכנון של DB

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

rl5655

New member
תכנון DB

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

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