エンティティの関係は - 弱いエンティティが「1」のような関係「多くの1つ」に参加することができます

StackOverflow https://stackoverflow.com/questions/2464094

質問

以下のエンティティ関係構造で、私はローンとITEMエンティティ間の関係が有効であるかどうかを把握するために苦労している?

LOANの弱いエンティティがローンを主キーを形成するために、「loan_dateLeant」と顧客とITEMから主キーの部分鍵を使用します。 しかしLOANローンとしてITEMとの関係「多くの1つは、」複数の項目で構成することができました。 しかし、確かに、これは複数の項目が貸与された場合、ローンレコードは主キーの一部のための2つのitem_idの値を持つことになります?

altテキスト

役に立ちましたか?

解決

あなたは正しい、それは有効ではありません - あなたは、主キーの定義一環として対多の関係を使用することはできません。あなたが代わりにやって検討するかもしれないことは、あなたの主キーの一部を作るユニークなloan_idを追加し、代わりの融資が含まれているアイテムです。その後、単一のローンは、その顧客とローンID(または顧客、日付、およびローンID)によって定義されます。

問題が解決しない場合は、日時フィールドをdate_leant作り、(お使いのシステムの制約が以内)2つの融資を持っているあなたは、おそらく同時に発生することができないまでに精度を高める - それはどのように可能性があること単一の顧客がお互いのミリ秒以内に二つの別々のローンを取引する?

これが「1」のような関係に参加してからの融資の実体を防ぐことはできません。それはちょうどあなたが「多くの」を使用して、弱い実体を定義することができないことを意味します。

他のヒント

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

は、ローンの主キーは、日付のみ+顧客識別子に依存します、覚えておいてください。限り、「作ることができる」関係の「1」の最大カーディナリティがあるとして、あなたがローンで主キーにいいですよ(すなわち、ローンが唯一の1-顧客に関連している)。

ITEMテーブルには、代わりにアイテム内の外部キーとして融資(得意先+日付)の(単一)の識別子がかかります。 LOANの主キーは、このモデリングによって影響されることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top