说,
我有 3 个表。
User
包含有关用户的基本信息。
SectionA
,其中包含有关用户的更多信息。
SectionB
,其中还包含有关用户的更多信息。
每个用户只能有一个SectionA
和SectionB
数据。
我的想法是创建一个这样的表格设计:
id name section_a_id section_b_id
1 matt 1 1
问题是,section_a_id
和 section_b_id
不能自动递增,因为它们不是主键。
所以我尝试了一种不同的方法,并决定 User
中的 id
主键应该是引用 section_a_id
和 section_b_id 的外键`。但我无法这样做,因为 mysql 只允许引用一个表。
那么我应该如何处理这种情况呢?
最佳答案
如果是一对一的关系,将三个表合并成一个大表总是更容易,Section 表的列可以为空。
我可以看到这种方法的一些积极方面:
- 更轻松的插入、更新和删除操作。
- 当使用的连接较少时,数据检索速度更快。
- 索引空间更少,因为您为一个表而不是三个表索引主键。
关于mysql - 涉及多个表的一对一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45914666/