データベースに 2 つのテーブルorders
とorderHistory
.
----------------- -----------------------
| orders | | orderHistory |
----------------- -----------------------
| orderID (PK) | | historyLineID (PK) |
| orderDate | | status |
| price | | quantity |
----------------- -----------------------
order
は複数の を持つことができるようになりましhistory lines
た。ただし、 ahistory line
は単独では存在できません。これは弱いエンティティと呼ばれるため、からのPKは tableのPKorders
の一部である必要があると聞きました。orderHistory
質問
- これは本当に正しい弱いエンティティ関係ですか? それらを識別する他の方法はありますか?
- テーブルのPKをテーブル
order
に追加しorderHistory
て、複合主キーにする必要がありますか? - に新しいレコードを追加することにした場合
orderHistory
、新しい複合キーを追加するにはどうすればよいですか? (orderID
は table から入手できますorders
が、historyLineID
自動インクリメントする必要があります。) - これを通常の1 対多の関係としてモデル化し、代わりに
orderID
外部キーとしてのみ追加することにした場合はどうなりますか? そうすることの短所は何ですか? - すべてのテーブルが第 3 正規形である場合、Weak エンティティをまったく無視すると、設計の後半で問題が発生しますか?
ノート
orderID
&は両方ともhistoryLineID
代理キーです。前もって感謝します。