我有 3 张桌子(我们称它们为 Foo、Bar 和 Baz。
表:
富
- FooId
酒吧
- 条码
- FooId
巴兹
- 巴兹德
- 条码
- 另一个价值
显然,外键使得每个 Baz 都与 Bar 相关联,因此与 Foo 相关联。现在我想确保对于每组具有相同“AnotherValue”的 Baz,所有关联的 Foo 都是唯一的
例如,如果我有
Foos (1, 2, 3)
Bars ((10, 1), (11, 1), (12, 1), (13, 2))
Bazs ((100, 10, "a"), (101, 10, "b"), (102, 13, "a"), (104, 11, "b"))
这应该被阻止,因为 Baz 104 和 baz 101 都具有 AnotherValue "b" 和 Foo 1。
我想到的选项(按我当前的偏好排序)
索引视图
我可以在这三个表上创建一个视图,并在两列上放置一个唯一索引
计算列
将 FooId 作为计算列添加到 Baz。然后在 AnotherValue 和 FooId 上添加索引。
检查约束
我很确定这可以添加并且会起作用。我没有太多使用检查约束,我不确定这是否是最好的方法。
扳机
这对我来说似乎很丑陋。