PostgreSQL中的外键过滤

我目前正在 PostgreSQL 中寻找一种方法,对于给定的表,我可以通过定义条件来限制可用的有效外键的数量。

所以场景是这样的

https://dbfiddle.uk/?rdbms=postgres_11&fiddle=4dbe279906dc8815​​98b7e72093534ce7

A、B、C 都代表不同的实体,每个具体的条目都列在 x_entry 表中。

表 A、B、C 都表示给定条目的版本,以及它们在什么时间跨度内有效。

我想确保表 A 始终具有 B 和 C 的外键,其中A.B.C == A.C时间跨度 A的条件。

如这里所见

Ainit违反了 2000-3000 范围
的条件,因为binit在时间范围内2100-3000有一个外键cinot
,ainit 将其外键从 cinit 更改为cinat违反条件A.B.C == A.C

但是我如何设置这样的条件限制,以防止外键不违反这样的特定条件。? 甚至有可能吗?

以上是PostgreSQL中的外键过滤的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>