如何在 sql 中使用两个布尔字段对 OR 条件进行建模



我正在做一个数据库模型,其中产品可以有两个不同的属性,但其中一个排除了另一个。例如,如果为产品 A 启用了属性 1,则此产品不能启用属性 2。

如何实现此条件?我考虑过使用触发器来启用禁用另一个的布尔字段,但我不知道是否有选项可以通过数据建模来做到这一点。

我正在使用的rdbms是postgres sql。

谢谢。

使用检查约束,例如:

create table my_table(
    id integer primary key, 
    property1 boolean, 
    property2 boolean,
    check (not (property1 and property2))
    );

最新更新