防止插入错误的数据

时间:2015-02-27 18:19:35

标签: mysql indexing

我有一个包含两个表的数据库,其中包含(第一个)某些区域(第二个)一些办公室:

Table Regions
IdRegion
Region

Table Offices
IdOffice
IdRegion
IdOffice

(我还将IdRegion设置为外键)

在第三个表格中,我有两个字段,我想插入办公室和办公室所在的区域以防止错误。

我已经准备了一份表格,其中(选定的地区)仅显示位于所选地区的办事处,但我问自己是否有办法设置数据库以拒绝错误插入

否则,我已经考虑过检查IdRegion是否是在执行INSERT查询之前与所选办公室对应的Offices表中插入的IdRegion。

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

你建议组成第三张桌子。我想该表将IdOffice和IdRegion作为其列。如果您这样做,则可以创建由两列组成的复合主键。并且您将IdOffice作为您办公室表的外键。同样,您可以将IdRegion设为您的Regions表格的fk。

但除非你在办事处和地区之间建立多对多的关系,否则三表设计没有任何意义。但你不是。您已将IdRegion外键放入您的办公室表中。这意味着您希望每个办公室只在一个地区。