0
我在Postgres 9.3数据库中有以下场景:表B和C参考表A;表C具有引用表B的附加可选字段。我想确保对于引用表B的表C的每个行c,c.b.a = c.a.postgres:涉及多个表的外键约束
- 我可以重构表C,这样如果指定了c.b,c.a就是null,但这会使查询连接表A和C变得尴尬。
- 我也可以使表B的主键包含对表A的引用,然后使表C的表B的外键包括表C对表A的引用,但是我认为这种调整太不合理,不足以证明其好处。
- 我认为这可以通过在表C插入/更新之前运行的触发器来完成,并拒绝违反指定约束的操作。
在这种情况下是否有更好的方法来执行数据完整性?
你不得不使用触发器和适当的锁定。 – 2014-09-27 07:06:51