次の状況をモデル化する方法について誰かが助けてくれますか?
PRODUCTS
と呼ばれるsuperclass(またはsupertype)があり、サブクラス(またはsubtypes)FOOD
およびSHOES
という名前です。
CUSTOMERS
と名付けられた別のsuperclassが存在し、SHOE STORE
とGROCERY STORE
と名付けられたsubclassesがあります。
次のことを示すいくつかのルールを表す必要があります。
FOOD
はGROCERY STORES
にのみ配信できます。SHOES
は、SHOE STORES
にのみ配布できます。以下に示す2つの図を試してみました。
上図
(a)同じエンティティタイプ、つまりORDERS
と(b)その周りの関係の重複は本当に好きではありません。
下図
これは適切な表記ではないと確信しています。代わりにsuperclassレベルで関係を作成し、制限がプログラミングレベルで実装されることに注意してください。
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 ├─────────────────┘
└────────────┘