我的数据库中有 2 个表orders
和orderHistory
.
----------------- -----------------------
| orders | | orderHistory |
----------------- -----------------------
| orderID (PK) | | historyLineID (PK) |
| orderDate | | status |
| price | | quantity |
----------------- -----------------------
现在一个order
可以有多个history lines
. 但是,ahistory line
不能单独存在。我听说这被称为弱实体,因此来自的PKorders
必须是table的PKorderHistory
的一部分。
问题
- 这真的是正确的弱实体关系吗?还有其他方法可以识别它们吗?
- 我应该将表的PK添加
order
到表中orderHistory
并使其成为复合主键吗? - 如果我决定向 中添加新记录
orderHistory
,我将如何添加新的复合键?(orderID
可从 table 获得orders
,但historyLineID
应自动递增。) - 如果我决定将其建模为普通的一对多关系,只
orderID
添加为外键怎么办?这样做有什么坏处? - 如果所有表都处于第 3 范式,那么在设计后期完全忽略弱实体会导致任何问题吗?
笔记
orderID
&都是historyLineID
代理键。提前致谢。