一列字段如何引用两个不同表的ID?

问题描述 投票:0回答:1

我有:

表格

Review
带列
item_id
(非 pk)

Product
带列
id
(pk)

Business
带列
id
(pk)

关系:

Review.item_id
参考资料
Product.id

Review.item_id
参考文献
Business.id

这些关系是 1:M

MySQL 中一列字段引用两个不同表中的 ID 的语法是什么?

我的研究使我相信你不能让一个外键引用两个不同的表。 到目前为止我的结论(基于下面提供的链接):

  1. 使用没有外键约束的外键
  2. 使用字段引用其他记录,但不创建外键约束
  3. 多态关联。外键可以引用多个相关表中任何一个中的行。
  4. 一个外键只能引用一张表

这些结论对我来说似乎符合逻辑,但我无法弄清楚语法。

链接:

MYSQL - 一列引用多个表

是否可以将一列引用为多个外键?

MySQL - 条件外键约束

mysql database database-design foreign-keys mysql-python
1个回答
0
投票
CREATE TABLE product (
  id INTEGER PRIMARY KEY
);

CREATE TABLE business (
  id INTEGER PRIMARY KEY
);

CREATE TABLE review (
  item_id INTEGER,
  
  FOREIGN KEY (item_id) REFERENCES product(id),
  FOREIGN KEY (item_id) REFERENCES business(id)
);

注意:我认为你的领域模型存在一些逻辑问题。

© www.soinside.com 2019 - 2024. All rights reserved.