知识卡片

关系数据库的四种关联类型

专业/工作 · 476.b

内容

表与表之间的关联可以归纳为四种:一对一(”有一个”,如用户对应一份个人简介)、一对多(”有多个”,如用户有多篇帖子)、多对一(”属于”,如多篇帖子属于同一个用户)、多对多(如用户和帖子互相参与讨论)。发散:建模关联关系时先问”外键放在哪张表”,这个物理决策会直接决定查询效率——外键放在”多”的一方(如评论表存post_id)能让数据库为其建索引快速反查,这是选择关联实现方式时真正要权衡的工程问题。

参考来源

- 位置:《Go Web编程》第6章《存储数据》(源文件:_epub-src/OEBPS/text00019.html) - 结论依据:原文在该章节围绕“表与表之间的关联可以归纳为四种:一对一("有一个",如用户对应一份个人简介)、一对多("有多个",如用户有多篇…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:eate table comments ( id serial primary key, content text, author varchar(255), post_id integer references posts(id) ); 这次的脚本除了会创建 posts 表之外,还会创建 comments 表, comments 表的大…