我有一个名为computer的表和一个office_id列,computer_name,server。 我是每个办公室ID,只有一台计算机作为服务器。所以,如果我在办公室有多台电脑。办公室中只有一台计算机是服务器,需要服务器。没有服务器的办公室。
答案 0 :(得分:1)
如果您尝试在Computers
表中实现此功能,则需要在MySQL中使用触发器。其他数据库支持过滤索引和计算列之类的东西,这使得这不必要,但不是MySQL。
相反,只需在Offices
表中添加一列:
create table Offices (
. . . ,
ServerId int not null,
Foreign key (ServerId) references Computers(ComputerId)
);
这将保证每个办公室都有一台服务器。您可能需要一个触发器来保证OfficeId
表中的Computers
与OfficeId
表中的Offices
匹配。