gpt4 book ai didi

sql-server - 强制执行此数据完整性约束的最佳方法?

转载 作者:行者123 更新时间:2023-12-03 12:28:21 24 4
gpt4 key购买 nike

我有 3 张 table (我们称它们为 Foo、Bar 和 Baz。

表格:


  • 愚人

  • 酒吧
  • BarId
  • 愚人

  • 巴兹
  • BazId
  • BarId
  • 另一个值

  • 显然,外键使得每个 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。

    我想到的选项 (按照我目前的偏好排序)

    索引 View

    我可以在这三个表上创建一个 View ,并在两列上放置一个唯一索引

    计算列

    将 FooId 作为计算列添加到 Baz。然后在 AnotherValue 和 FooId 上添加一个索引。

    检查约束

    我很确定这可以添加并且会起作用。我没有经常使用检查约束,我不确定这是否是最好的方法。

    扳机

    这对我来说似乎很丑陋。

    最佳答案

    我不确定我是否完全理解这个问题,但似乎您想将 FooId 带到 Baz 表并在 FooId,AnotherValue 上添加一个备用键(唯一约束)。

    Baz
    •BazId
    •BarId
    •FooId
    •AnotherValue

    关于sql-server - 强制执行此数据完整性约束的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882937/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com