0

次のエンティティを持つerモデルがあります。Doctor, Patient, Humanとの間には生成関係がDoctor -> HumanありPatient -> Humanます。リレーションモデルを作成しようとしています。では、どちらのモデルが正しいのでしょうか。最初のモデルと2番目のモデルのどちらですか。

1)

Human (Name, Surname, Sex, Address)
Doctor(License number, specification)
Patient(Insurance number, diagnosis)

2)

Doctor(Name, Surname, Sex, Address, License number, specification)
Patient(Name, Surname, Sex, Address, Insurance number, diagnosis)

そして実体人間は必要ではありません。

PSAはリレーショナルモデルに不慣れです。

4

2 に答える 2

0

どちらのモデルも「正しい」です。ただし、データの挿入とクエリには違いがあります。

最初のオプションは、データを正規化して保持する場合に適しています (正規化の詳細については、 http://en.wikipedia.org/wiki/Database_normalizationを参照してください)。ただし、たとえばすべての医師またはすべての患者にクエリを実行する場合は、2 つのテーブルを結合する必要があります。
また、新しいオブジェクトを挿入するときは、2 つの行を (Human と Doctor/Patient に) 挿入する必要があります。
データをオブジェクトに変換する OR-Mapper を使用する場合、共通のベース (人間) があるため、ポリモーフィズムを使用できます。

2 番目の可能性は、速度が重要な場合に適しています。
結合が必要ないため、すべての医師/患者を照会する場合は高速になります。
ただし、医師や患者からのすべてのアドレスなどを照会したい場合は遅くなります

于 2012-05-06T10:55:35.507 に答える