【发布时间】:2011-04-15 08:23:09
【问题描述】:
这无疑是一个新手问题,但我一直无法 找到满意的答案。 在为多对多关系创建链接表时,是否最好 创建一个唯一的 id 或只使用各个表的两个外键(复合键?)。
例如,查看 Northwind 数据库的不同图表,我遇到过 两个“版本”。 即:带有 fkProductID 和 fkOrderID 以及版本的 OrderDetails 表 添加了 OrderDetailsID。
有什么区别? (它是否也取决于数据库引擎?)。 SQL(或 Linq)的优点/缺点是什么?
提前感谢您的解释。
汤姆
【问题讨论】:
-
这取决于您是否希望多对多在完整的表/实体中扩展... OrderDetails 可以保留产品中的重复信息(价格、SKU、标签),以存档订单详细信息,无论产品的未来变化;实际上将其与产品表/实体解耦。
标签: sql database database-design data-modeling