web-dev-qa-db-ja.com

エンティティリレーションシップダイアグラムでのサブクラス(またはサブタイプ)制約のモデリング

シナリオの説明

次の状況をモデル化する方法について誰かが助けてくれますか?

  1. PRODUCTSと呼ばれるsuperclass(またはsupertype)があり、サブクラス(またはsubtypesFOODおよびSHOESという名前です。

  2. CUSTOMERSと名付けられた別のsuperclassが存在し、SHOE STOREGROCERY STOREと名付けられたsubclassesがあります。

  3. 次のことを示すいくつかのルールを表す必要があります。

    • FOODGROCERY STORESにのみ配信できます。
    • SHOESは、SHOE STORESにのみ配布できます。

暫定図

以下に示す2つの図を試してみました。

Diagrams

図に関する考慮事項

上図

(a)同じエンティティタイプ、つまりORDERSと(b)その周りの関係の重複は本当に好きではありません。

下図

これは適切な表記ではないと確信しています。代わりにsuperclassレベルで関係を作成し、制限がプログラミングレベルで実装されることに注意してください。

4
Otaxar

OrdersProductsの関係であるCustomersエンティティを作成できると思います。 OrdersにはサブクラスFoodOrdersShoeOrdersがあり、それぞれFood - GroceryStoresShoes - ShoeStoresのサブクラス間の関係になります。

                                            ┌───────────┐
                                            │ Employees │
                                            └─────┬─────┘
                                                  │
                                                  │
      ┌──────────┐               ┌────────┐       │       ┌───────────┐
      │ Products ├─── contain ───┤ Orders ├─── deliver ───┤ Customers │
      └────┬─────┘               └────┬───┘               └─────┬─────┘
           │                          │                         │
           │                          │                         │
          isA                        isA                       isA
          │ │                        │ │                       │ │
     ┌────┘ └────┐             ┌─────┘ └─────┐            ┌────┘ └────┐
     │           │             │             │            │           │
 ┌───┴──┐    ┌───┴───┐         │             │    ┌───────┴───────┐   │
 │ Food │    │ Shoes │         │             │    │ GroceryStores │   │
 └───┬──┘    └───┬───┘         │             │    └───────┬───────┘   │
     │           │       ┌─────┴──────┐      │            │     ┌─────┴──────┐
     └───────────│───────┤ FoodOrders ├──────│────────────┘     │ ShoeStores │
                 │       └────────────┘      │                  └─────┬──────┘
                 │                     ┌─────┴──────┐                 │
                 └─────────────────────┤ ShoeOrders ├─────────────────┘
                                       └────────────┘
5
ypercubeᵀᴹ