相关疑难解决方法(0)

如何实现只能在单行上设置的“默认”标志

例如,有一个类似这样的表:

create table foo(bar int identity, chk char(1) check (chk in('Y', 'N')));
Run Code Online (Sandbox Code Playgroud)

标志是否实现为 a char(1)、 abit或其他无关紧要。我只是希望能够强制执行它只能在单行上设置的约束。

constraint database-agnostic referential-integrity

32
推荐指数
10
解决办法
2万
查看次数

如何在数据库模式中表达这个约束?

我在 BCNF 中有以下功能依赖项:

a,b -> c
a -> d
b -> d
Run Code Online (Sandbox Code Playgroud)

有了附加约束, noab应该与 a c、 whereabhave 不同的ds 组合。

例子:

a | d   b | d   a | b | c
-----   -----   ---------
1 | 3   5 | 3   1 | 5 | 6
2 | 4           2 | 5 | 7
Run Code Online (Sandbox Code Playgroud)

第一行a,b,c是允许的 ( 1->3, 5->3),但第二行是禁止的,因为 ( 2->4, 5->3) 4 != 3 …

constraint relational-theory

7
推荐指数
1
解决办法
1339
查看次数