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

如何在sql中使用两个布尔字段对OR条件建模?,sql,database,postgresql,data-modeling,Sql,Database,Postgresql,Data Modeling,我正在做一个数据库模型,其中一个产品可以有两个不同的属性,但其中一个不包括另一个。例如,如果为产品A启用了属性1,则此产品不能启用属性2 如何达到这个条件?我曾考虑过使用触发器来启用或禁用另一个的布尔字段,但我不知道是否有一个选项可以通过数据建模来实现这一点 我使用的rdbms是postgres sql 谢谢。使用检查约束,例如: create table my_table( id integer primary key, property1 boolean, pro

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

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

我使用的rdbms是postgres sql


谢谢。

使用检查约束,例如:

create table my_table(
    id integer primary key, 
    property1 boolean, 
    property2 boolean,
    check (not (property1 and property2))
    );
一个枚举字段不是更有意义吗?产品为
property=1
property=2
property=NULL