【问题标题】:How to model an OR condition with two boolean fields in sql?如何在 sql 中使用两个布尔字段对 OR 条件建模?
【发布时间】:2017-11-22 18:22:30
【问题描述】:

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

如何达到这个条件?我曾考虑过使用触发器来启用禁用另一个的布尔字段,但我不知道是否可以通过数据建模来执行此操作。

我使用的 rdbms 是 postgres sql。

谢谢。

【问题讨论】:

  • 那么 one ENUM 字段不是更有意义吗?产品是 property = 1property = 2property = NULL

标签: sql database postgresql data-modeling


【解决方案1】:

使用检查约束,例如:

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

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 2010-12-19
    • 2017-06-07
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2012-09-15
    • 2022-01-22
    相关资源
    最近更新 更多