我的数据库中有 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代理键。提前致谢。

