1
1
您可以将bar.status作为bar表主键的一部分。然后将status作为FK to bar的一部分放在foo表上。还设置了一个foo.status必须等于true的约束。这是一种黑客攻击,但根据现实世界的背景,这可能是有意义的。 |
2
1
核心方法是在foo和bar之间有一个中间/子类别表,其中包含状态为true的bar值。foo上的外键将指向中间表,但如果添加了bar值或状态更改为false,则需要在两边进行维护。。。 另一种方法是使用触发器,因为外键没有过滤的方法。 PostgreSQL没有具体化视图;我不确定它是否允许您指定对视图的外键引用,但如果条状态更改为false,这将意味着一个问题。。。 |
3
1
这是标准SQL关系完整性不能满足实际需求的许多情况之一。例如,我希望可以创建一个针对 而不是整个列;postgresql提供部分索引,这将解决您的问题。 没有 状态字段。建立你的FK对吧。然后,您可以创建一个视图联合bar_true和bar_false来获得完整的bar集(尽管您必须处理主键)。 |
4
0
|
Davtho1983 · 在Django中查看ForiegnKey数据 6 年前 |
N_M · 主键和外键约束在配置单元中如何工作? 6 年前 |
Melolailo · 将约束与外键一起使用 6 年前 |
Alfred Balle · Postgresql,对唯一约束的引用 6 年前 |
yodabar Arkana · 更新|删除外键时的PgSQL默认操作 6 年前 |
Seba · 如何检查外键以限制软删除? 6 年前 |
dryhay · MySQL“多对多”关系错误 6 年前 |