如何为同一类型的一个列名添加一个只能有一个true的布尔值?

时间:2015-07-05 17:20:19

标签: mysql boolean

我有一个名为computer的表和一个office_id列,computer_name,server。 我是每个办公室ID,只有一台计算机作为服务器。所以,如果我在办公室有多台电脑。办公室中只有一台计算机是服务器,需要服务器。没有服务器的办公室。

1 个答案:

答案 0 :(得分:1)

如果您尝试在Computers表中实现此功能,则需要在MySQL中使用触发器。其他数据库支持过滤索引和计算列之类的东西,这使得这不必要,但不是MySQL。

相反,只需在Offices表中添加一列:

create table Offices (
    . . . ,
    ServerId int not null,
    Foreign key (ServerId) references Computers(ComputerId)
);

这将保证每个办公室都有一台服务器。您可能需要一个触发器来保证OfficeId表中的ComputersOfficeId表中的Offices匹配。