Nothing close enough? Start from a blank erd → Describe it in one paragraph.
How to use an erd template.
- 01הגדירו את הישויות User ו־Product
התחילו עם User (user_id, email, name, address) ו־Product (product_id, name, description, price, stock). אלה שתי הישויות המרכזיות בכל סכמה של חנות מקוונת.
- 02מדלו את הקשר בין Order ל־OrderItems
צרו את Order המקושר ל־User (משתמש אחד, הזמנות רבות), ואת OrderItems כטבלת קישור בין Order ל־Product. OrderItems מכיל את הכמות ואת unit_price בזמן הרכישה.
- 03הוסיפו Cart ו־CartItems
מדלו את Cart כישות הזמנה זמנית המקושרת ל־User, כאשר CartItems מקשר בין Cart ל־Product. ההמרה מעגלה להזמנה היא תהליך עסקי חשוב שכדאי לייצג.
- 04כללו תשלום ומשלוח
הוסיפו Payment המקושר ל־Order (payment_method, status, amount, transaction_id) ו־Shipping (carrier, tracking_number, estimated_delivery, status) כדי להשלים את מחזור חיי העסקה.
- 05הרחיבו באמצעות ביקורות והנחות
הוסיפו ישות Review (user_id FK, product_id FK, rating, text, date) וישות Discount או Coupon (code, discount_type, amount, expiry) כדי למדל פלטפורמת מסחר מלאה.
Questions about erd templates
מהן ישויות הליבה במסד נתונים של חנות מקוונת?
ישויות הליבה הן: User, Product, Order, OrderItems (טבלת קישור), Cart, CartItems, Payment ו־ShippingAddress. ישויות מורחבות כוללות ProductVariant, Review, Category, Discount ו־Inventory.
איך ממדלים וריאציות של מוצרים (מידה, צבע) בדיאגרמת ER?
צרו ישות ProductVariant המקושרת ל־Product, עם מאפיינים לכל ממד של הווריאציה (size, color, SKU, stock_qty, price_modifier). לאחר מכן OrderItems ו־CartItems יפנו אל ProductVariant במקום אל Product ישירות.
האם Cart ו־Order צריכים להיות ישויות נפרדות?
כן, ברוב התכנונים. Cart הוא זמני (ניתן לנטוש, לשנות או לפקוע), בעוד Order הוא רשומת עסקה קבועה. ההפרדה מקלה על ניתוח שיעור העגלות הנטושות ועל שמירה על שלמות היסטוריית ההזמנות.
איך מטפלים בכמה כתובות למשלוח לכל משתמש?
צרו ישות Address נפרדת המקושרת ל־User (משתמש אחד, כתובות רבות). לאחר מכן Order יפנה אל Address באמצעות מפתח זר shipping_address_id, וכך הכתובת בעת הרכישה תישמר גם אם המשתמש יעדכן את הפרופיל שלו בהמשך.
איך ממדלים קודי הנחה בסכמת חנות מקוונת?
צרו ישות Discount (code, type: percentage/fixed, value, min_order_amount, expiry, max_uses). קשרו אותה ל־Order באמצעות FK בשם applied_discount_id. כך ניתן לתעד איזו הנחה הוחלה על כל הזמנה בזמן התשלום.