【问题标题】:Is foreign key reference from two different primary key from two different tables valid?来自两个不同表的两个不同主键的外键引用是否有效?
【发布时间】:2012-09-27 20:58:24
【问题描述】:

我有一个外键必须引用两个不同表的主键。

表 1:动物

       animal_ id (primary key)

表 2:鸟

       bird_ id (primary key)

表 3:宠物信息

      pet_id,
      type ENUM ('bird', 'animal')
      foreign key (pet_ id) references animal(animal_id), bird(bird_id) 

所以,我需要根据需要从动物表或鸟表中检查 pet_id。这是有效的吗?或者我应该进行一些重组。 . .

注意: I referred this . . 但我不确定是否必须更改现有设计

【问题讨论】:

  • 看来你的外键放错了地方。我本来希望外键在它们各自的表中是 animal_id 和 bird_id,这将引用父 Pet 表(超类型/子类型模式)。

标签: mysql database-design innodb


【解决方案1】:

这是糟糕的设计。为所有具有所有属性的宠物准备一张桌子,其中一张是类型。

【讨论】:

    【解决方案2】:

    看看这个页面:http://www.tomjewett.com/dbdesign/dbdesign.php?page=subclass.php在动物和鸟类表中做一个pet_id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-23
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      相关资源
      最近更新 更多