首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关联表的优点和缺点是什么?

关联表的优点和缺点是什么?
EN

Stack Overflow用户
提问于 2018-06-09 03:27:39
回答 2查看 2.4K关注 0票数 2

在RDBMS中,我相信有几种方法可以设计表之间的关系。因此,我想问一下,在创建带有关联表的和没有关联表的之间,的优缺点是什么?的缺点是什么?有没有一个正式的解决方案来决定两者?

使用泛型表格,下面我演示了我的意思:

示例#1 (无关联表)

用户

代码语言:javascript
复制
+----+-------+
| id | name  |
+----+-------+
|  1 | John  |
|  2 | James |
|  3 | Jacob |
+----+-------+

评论

代码语言:javascript
复制
+----+-----------------------------+---------+
| id |            text             | user_id |
+----+-----------------------------+---------+
|  1 | Lorem ipsum dolor sit amet. |       1 |
|  2 | Praesent ultricies libero.  |       2 |
|  3 | Donec eget blandit nunc.    |       3 |
+----+-----------------------------+---------+

注意:对评论作者的引用存储在comments中。

示例#2 (带关联表)

用户

代码语言:javascript
复制
+----+-------+  
| id |  name |  
+----+-------+  
| 1  |  John |  
| 2  | James |  
| 3  | Jacob |  
+----+-------+  

评论

代码语言:javascript
复制
+----+-----------------------------+  
| id |                        text |  
+----+-----------------------------+  
| 1  | Lorem ipsum dolor sit amet. |  
| 2  |  Praesent ultricies libero. |  
| 3  |    Donec eget blandit nunc. |  
+----+-----------------------------+  

comment_user

代码语言:javascript
复制
+----+--------------+-----------+
| id | comment_id   | user_id   |
+----+--------------+-----------+
| 1  | 1            |        1  |
| 2  | 2            |        2  |
| 3  | 3            |        3  |  
+----+--------------+-----------+

注意:对评论作者的引用存储在comment_user中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-13 00:34:36

没有正式的东西,没有。

优点:

根据您定义的键,

  • 关联表可以处理一对一、一对多和多对多关系。
  • 您可以在没有用户的情况下拥有注释(不使用

表可以在不修改现有表的情况下将其添加到现有数据库中。

缺点:

额外的表会使你的模式变得有点混乱。当查询比较复杂的时候,一个额外的连接可能会影响到performance.

  • Making (如果这是一个要求),确保每条评论都有一个用户(如果这是一个要求)是更complicated.

的(

  • a extra
  • )

顺便说一句,comment_user表中的id列似乎毫无意义。

票数 3
EN

Stack Overflow用户

发布于 2018-06-09 03:32:14

您错误地使用了术语“数据透视表”。中间表有多种术语;常用名称包括连接表和关联表。优点和缺点也很奇怪--您正在征求意见,这在Stack Overflow上是明确不允许的。但是,你的问题是相当误导的。因此,这是值得回答的。

你的两个选项做了不同的事情。第一个实现了1:n关系。一个给定的用户可以有很多评论。但是一个评论只能属于一个用户。

第二个实现了m:n关系。一个给定的用户可以有很多评论。一个给定的评论也可以有许多用户。

显然,1:n关系可以作为m:n关系的特例来实现。然而,这是过度杀伤力和低效的。

用户和评论之间的关系通常是1:n,因此第一种结构看起来更自然。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档