如何使用 sql 中的两个布尔字段对 OR 条件建模?

How to model an OR condition with two boolean fields in sql?

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

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

我使用的rdbms是postgres sql.

谢谢。

使用检查约束,例如:

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