Foreign key to one of many tables?(许多表之一的外键?)
问题描述
设置外键约束的常用方法是选择外键将指向哪个表.
The usual way of setting a foreign key constraint is to choose which table the foreign key will point to.
我在 1 个表和一组表之间存在多态关系.
I'm having a polymorphic relation between 1 table and a set of table.
这意味着该表将与集合中的其中一个表有关系.
That means that this table will have a relation with one of those tables in the set.
例如
images: person_id, person_type
subordinates: id, col1, col2...col9
products: id, colA, colB...colZ
在上面的例子中,如果person_type是subordinates",那么person_id应该是subordinates.id的外键,产品也是如此.
In the above example, if person_type is "subordinates" then person_id should be a foreign key to subordinates.id and the same goes with products.
所以我想知道,是否可以有一个外键指向多个表中的一个,或者您是否必须在分配一个表时专门设置它指向哪个表.
So I wonder, is it possible to have a foreign key to one of many tables, or do you have to specifically set which table it points to when you assign one.
这个问题是针对 MySQL 和 PostgreSQL 的.
This question is for both MySQL and PostgreSQL.
谢谢
推荐答案
不,外键约束总是只引用一个父表.
No, a foreign key constraint always references exactly one parent table.
这个问题经常出现.以下是我过去的一些回答:
This question comes up frequently. Here are some of my past answers to it:
- 为什么多态关联中不能有外键吗?
- 可以为两个可能的表之一设置 MySQL 外键吗?
- 在同一列中引用外键
- 在 StackOverflow 克隆中,Comments 表应该与 Questions and Answers 有什么关系?
- MySQL - 条件外键约束
- 如何处理ERD(表格)设计中的OR"关系?
- MySQL:两个 n:1 关系,但不能同时使用
- Why can you not have a foreign key in a polymorphic association?
- Possible to do a MySQL foreign key to one of two possible tables?
- Referencing foreign keys in the same column
- In a StackOverflow clone, what relationship should a Comments table have to Questions and Answers?
- MySQL - Conditional Foreign Key Constraints
- How to handle an "OR" relationship in an ERD (table) design?
- MySQL: Two n:1 relations, but not both at once
有关多态关联的更多信息,请参阅我的演示文稿 Practical Object-SQL 中的面向模型 或我的书 SQL 反模式:避免数据库编程的陷阱.
For more on Polymorphic Associations, see my presentation Practical Object-Oriented Models in SQL or my book, SQL Antipatterns: Avoiding the Pitfalls of Database Programming.
这篇关于许多表之一的外键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:许多表之一的外键?


- 导入具有可变标题的 Excel 文件 2021-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 更改自动增量起始编号? 2021-01-01
- SQL 临时表问题 2022-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01