【问题标题】:prevent inserting of wrong data防止插入错误数据
【发布时间】:2015-02-27 18:19:34
【问题描述】:

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

Table Regions
IdRegion
Region

Table Offices
IdOffice
IdRegion
IdOffice

(我也设置了 IdRegion 作为外键)

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

我已经准备了一个表格,其中(选定的区域)仅显示位于选定区域的办公室,但我问自己是否有任何方法可以设置数据库以拒绝错误插入。

否则,我想检查 IdRegion 是否是插入到 Offices 表中的那个,与执行 INSERT 查询之前选择的 office 相对应。

欢迎提出任何建议。

【问题讨论】:

  • 我所理解的:您想记录哪些地区办事处位于。我不明白的地方:确切的问题是什么?

标签: mysql indexing


【解决方案1】:

您提议制作第三张桌子。我想该表将以 IdOffice 和 IdRegion 作为其列。如果这样做,您将创建一个由两列组成的复合主键。你会让 IdOffice 成为你的 Offices 表的外键。同样,您可以将 IdRegion 设置为 Regions 表的 fk。

但是,除非 Office 和 Region 之间存在多对多关系,否则这种三表设计没有任何意义。但你没有。您已将 IdRegion 外键放入您的 Offices 表中。这意味着您希望每个办事处都位于一个地区。

【讨论】:

  • 我的第三个表有字段:“Person”、“IdRegion”、“IdOffice”(等等),我担心在“IdRegion”和“IdOffice”字段中插入错误的值。我害怕被插入一个不同地区的办公室。很抱歉,因为我认为在创建第三张表时我是一个糟糕的构建者:我已经意识到在第三张表中我只需要字段“IdOffice”而不是两个字段“IdRegion”和“IdOffice”,因为我已经完成了。感谢您的宝贵时间
猜你喜欢
  • 1970-01-01
  • 2013-11-13
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
相关资源
最近更新 更多