Database-Design
在實體關係圖中建模子類(或子類型)約束
場景描述
有人可以幫助我了解如何模擬以下情況:
- 有一個名為 的超類(或超類型)
PRODUCTS
,它具有名為和的子類(或子類型) 。FOOD``SHOES
- 存在另一個名為 的超類,
CUSTOMERS
其子類名為SHOE STORE
andGROCERY STORE
。- 我需要代表一些規則來表明:
FOOD
只能送到GROCERY STORES
。SHOES
可以獨家分發給SHOE STORES
.暫定圖表
我已經嘗試了下面顯示的兩個圖表:
圖表注意事項
上圖
我真的不喜歡重複 (a) 相同的實體類型,即 ,
ORDERS
和 (b) 圍繞它的關係。底圖
我很確定這不是正確的表示法。我是否應該在超類級別創建關係並記下限制將在程式級別實現?
我認為您可以創建一個實體,它是和
Orders
之間的關係。將有子類和,它們分別是 和 的子類之間的關係。Products``Customers``Orders``FoodOrders``ShoeOrders``Food - GroceryStores``Shoes - ShoeStores
┌───────────┐ │ Employees │ └─────┬─────┘ │ │ ┌──────────┐ ┌────────┐ │ ┌───────────┐ │ Products ├─── contain ───┤ Orders ├─── deliver ───┤ Customers │ └────┬─────┘ └────┬───┘ └─────┬─────┘ │ │ │ │ │ │ isA isA isA │ │ │ │ │ │ ┌────┘ └────┐ ┌─────┘ └─────┐ ┌────┘ └────┐ │ │ │ │ │ │ ┌───┴──┐ ┌───┴───┐ │ │ ┌───────┴───────┐ │ │ Food │ │ Shoes │ │ │ │ GroceryStores │ │ └───┬──┘ └───┬───┘ │ │ └───────┬───────┘ │ │ │ ┌─────┴──────┐ │ │ ┌─────┴──────┐ └───────────│───────┤ FoodOrders ├──────│────────────┘ │ ShoeStores │ │ └────────────┘ │ └─────┬──────┘ │ ┌─────┴──────┐ │ └─────────────────────┤ ShoeOrders ├─────────────────┘ └────────────┘