对相关行数(外键)SQL Server创建限制

时间:2016-03-18 10:37:27

标签: sql sql-server database-design implementation

例如,我想在两个实体之间的一侧强制创建1:1。 为此,我创建外键并将PK复制到子实体中的新属性。所以我得到这样的东西: Relation between two entities picture 但是如果我想在SQL Server中创建它,它看起来就像是正常的1:*关系。所以为了使它成为真正的1:1关系我需要在外键属性上创建UNIQUE约束,我是对的吗?

另一个问题,如果我有1:*的关系并希望它像[1..100]那样受限制,那么在SQl Server中是否可以?例如,DB for Car Seller车站遍布整个城市,它有员工,每个人都负责一些车辆。一名员工不能对50多辆汽车负责,因为他不能立刻对所有汽车进行必要的关注。

1 个答案:

答案 0 :(得分:0)

是的,您可以对外键具有唯一约束。这是建立1:1关系的常用技术。

这不是一个1:1的关系,因为一方可能存在而另一方可能不存在,而且由于SQL Server不支持延迟外键约束,因此您无法实施互惠。

因此,对外键的唯一约束是尽可能接近与SQL Server的1:1关系。

对于1:(0-100)约束,我将向唯一键添加第二个片段,该片段是1到100之间的整数,并且要求它不为空。这会带来一些问题,但它确实解决了手头的问题。