3

次のエンティティ関係構造では、LOANエンティティとITEMエンティティ間の関係が有効かどうかを判断するのに苦労していますか?

LOANの弱いエンティティは、「loan_dateLeant」の部分キーと、CUSTOMERおよびITEMの主キーを使用して、LOANの主キーを形成します。ただし、ローンは複数のアイテムで構成されている可能性があるため、LOANはITEMと「1対多」の関係にあります。しかし、確かにこれは、複数のアイテムが貸し出されている場合、貸し出しレコードの主キーの一部に2つのitem_id値が含まれることを意味しますか?

代替テキスト

4

2 に答える 2

3

そうです、それは有効ではありません。主キーの定義部分として多対多の関係を使用することはできません。loan_id代わりに検討する可能性があるのは、ローンに含まれるアイテムの代わりに、主キーの一部となる一意のキーを追加することです。次に、単一のローンは、その顧客とローンID(または顧客、日付、およびローンID)によって定義されます。

それが機能しない場合はdate_leant、日時フィールドを作成し、(システムの制約内で)2つのローンを同時に発生させることができなくなるまで、その精度を上げます-1人の顧客が取引する可能性はどのくらいありますか互いにミリ秒以内に2つの別々のローン?

これは、LOANエンティティが「1つ」として関係に参加することを妨げるものではないことに注意してください。これは、「多数」を使用して弱いエンティティを定義できないことを意味します。

于 2010-03-17T16:50:30.953 に答える
0

実際には、これを行うことができます。

LOANの主キーは、日付と顧客IDのみに依存することを忘れないでください。「作成できる」関係で最大カーディナリティが「1」である限り(つまり、ローンは1人の顧客にのみ関連している)、LOANの主キーは問題ありません。

ITEMテーブルは、代わりに、ローンの(単一の)識別子(customerID + date)をITEM内の外部キーとして受け取ります。LOANの主キーは、このモデリングの影響を受けません。

于 2011-03-11T17:04:53.340 に答える