2つのエンティティ間の多対多の関係では、間にジャンクションエンティティがあります。
私の質問は、ジャンクションエンティティが別のエンティティと関係を持つことができるかということです。ありがとうございました!(:
2つのエンティティ間の多対多の関係では、間にジャンクションエンティティがあります。
私の質問は、ジャンクションエンティティが別のエンティティと関係を持つことができるかということです。ありがとうございました!(:
はい。新しいエンティティが 2 つの親エンティティではなく関係に関連付けられている場合、それは間違いなく可能です。
1 つの例: 顧客による (製品の) 特定の購入に対して行われた支払いを追跡したいとします。3つのテーブルがあります。
Customer
----------
Customer_ID,
Customer_Name
Product
-------
Product_id,
Product_name
Purchase (Customer-product-association).
-------------------------------------------
purchase_id,
Customer_ID (FK)
Product_ID (FK)
total_transaction_amt.
Payments (child of purchase)
-------------------------------
Payment_id,
purchase_ID
上記の Payments テーブルは、Purchase テーブル (ジャンクション エンティティ) と親子関係にあります。他の関係 (多対多など) も同様に有効です。
確かにそれはできます。通常、ジャンクション エンティティは「弱い」エンティティであり、基本的に別のエンティティに依存していることを意味します。しかし、その弱いエンティティが別のエンティティと関係を持つことは完全に合法です。
たとえば、単純な監査システムがあるとします。監査はセクションで構成されています。各セクションは、個別のテーブルで事前定義されています。したがってaudit_definition
、監査定義の詳細section_type
を含む 、セクション テンプレートを含む 、およびaudit_section_definition
2 つを接続する があり、そのタイプの各監査に使用するセクションがわかります。
次にaudit_instance
、その監査タイプの実際の監査を含むテーブルがあります。その監査インスタンスのセクションの詳細を格納するために、section_instance
テーブルがあります。後者はジャンクション エンティティですが、からsection_instance
へのリンクが必要になることは十分に考えられます。audit_section_definition