我有一个包含两个表的数据库,其中包含(第一个)某些区域(第二个)一些办公室:
Table Regions
IdRegion
Region
Table Offices
IdOffice
IdRegion
IdOffice
(我还将IdRegion设置为外键)
在第三个表格中,我有两个字段,我想插入办公室和办公室所在的区域以防止错误。
我已经准备了一份表格,其中(选定的地区)仅显示位于所选地区的办事处,但我问自己是否有办法设置数据库以拒绝错误插入
否则,我已经考虑过检查IdRegion是否是在执行INSERT查询之前与所选办公室对应的Offices表中插入的IdRegion。
任何建议都表示赞赏。
答案 0 :(得分:0)
你建议组成第三张桌子。我想该表将IdOffice和IdRegion作为其列。如果您这样做,则可以创建由两列组成的复合主键。并且您将IdOffice作为您办公室表的外键。同样,您可以将IdRegion设为您的Regions表格的fk。
但除非你在办事处和地区之间建立多对多的关系,否则三表设计没有任何意义。但你不是。您已将IdRegion外键放入您的办公室表中。这意味着您希望每个办公室只在一个地区。