1

クラス用の小さなデータベースを設計する必要があるため、次の ERD モデルを使用しました: http://imgur.com/OSYwHp6

そして、次のリレーショナル モデルを取得しました。

http://imgur.com/RuMYgHA

残念ながら、リンクするのに十分な評判がない同様のクラスの例に従ってください。

私の質問は、これを正しく行ったのですか?もしそうなら、なぜTreatedテーブルが存在するのですか? Animal の AnimalID から Visit の AnimalID に矢印を引けないのはなぜですか? これらの設計モデルを完全には理解していないので、助けていただければ幸いです。

4

1 に答える 1

0

あなたが私たちに示したERDは少し混乱しています。処理された関係は、動物と訪問の間の関係が多対多であることを示唆しています。つまり、1 頭の動物を何度も治療することができ、1 回の治療で多くの動物を治療することができます。

しかし、Visit の属性として AnimalID を含めることは、1 回の訪問で 1 匹の動物しか処理できないことを示唆しています。

ERD には、要件分析とデータベース設計の要素が混在しています。従来の ERD には外部キーが含まれておらず、Visit の属性として AnimalID をリストすることは、従来の ERD ダイアグラムでは正しくありません。代わりに、Treated リレーションシップのカーディナリティが図に明示的に表示されます。

これらのカーディナリティを使用すると、Treated リレーションシップが多対 1、1 対多、1 対 1、または多対多のいずれであるかを判断できます。

多対多が正しい答えであれば、あなたの設計は正しいです。多対 1 が正しい答えである場合、設計は非常に複雑であり、Visit テーブルに AnimalID を外部キーとして格納できます。

于 2013-04-01T11:04:49.997 に答える