说我有两张桌子
产品表:
|ProductID|ProductName|ListPrice|
PrebuiltSystems 表:
|BuldID|Processor|Motherboard|RAM|
处理器,主板等的值都是现有的ProductID
。我现在正在创造
从每个部件名称列到一个ProductID
的外键关系,并为每个部件创建一堆导航属性和关系线。这可以吗?
或者是否存在某种关系合并/规则,我可以使用它来说明所有这些列都是productID
的外键而不创建一对一的关系?
答案 0 :(得分:3)
这可以吗?
是的,这是正确的方法。
或者是否有某种关系合并/规则可以用来说明 所有这些列都是productID的外键
不,他们都是不同的关系。
没有建立一对一的关系?
请注意,这些多对一,而不是一对一关系,许多PrebuiltSystems
将具有相同的Processor
答案 1 :(得分:0)
是的,拥有多个外键是可以的。但是,在你的例子中,我仍然会采用不同的方式;如果每个组件类型都有一个列,那么您自己就会受到限制。你如何处理多CPU系统?什么有多个硬盘等?
您应该规范化PrebuiltSystems表,以便您有一个链接表,该链接表创建与产品的n对n关系(例如,每个产品可以是任意数量的预构建系统的一部分,并且每个预构建的系统可以具有任何其中的产品数量)。