gpt4 book ai didi

sql - 关联表的优缺点是什么?

转载 作者:行者123 更新时间:2023-12-04 21:34:21 30 4
gpt4 key购买 nike

我相信在RDBMS中,有几种方法可以设计表之间的关系。因此,我想问一下在创建有关联表和无关联表的关系之间的优缺点。是否有正式的方案来决定两者?
下面,使用通用表演示我的意思:
Example#1(没有关联表)
使用者

+----+-------+
| id | name |
+----+-------+
| 1 | John |
| 2 | James |
| 3 | Jacob |
+----+-------+

注释
+----+-----------------------------+---------+
| id | text | user_id |
+----+-----------------------------+---------+
| 1 | Lorem ipsum dolor sit amet. | 1 |
| 2 | Praesent ultricies libero. | 2 |
| 3 | Donec eget blandit nunc. | 3 |
+----+-----------------------------+---------+

注意:对注释作者的引用存储在 comments中。
Example#2(带有关联表)
使用者
+----+-------+  
| id | name |
+----+-------+
| 1 | John |
| 2 | James |
| 3 | Jacob |
+----+-------+

注释
+----+-----------------------------+  
| id | text |
+----+-----------------------------+
| 1 | Lorem ipsum dolor sit amet. |
| 2 | Praesent ultricies libero. |
| 3 | Donec eget blandit nunc. |
+----+-----------------------------+

comment_user
+----+--------------+-----------+
| id | comment_id | user_id |
+----+--------------+-----------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
+----+--------------+-----------+

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

最佳答案

没有正式的,没有。

优点:


关联表可以处理一对一,一对多和多对多关系,具体取决于您定义的键。
您可以有没有用户的注释(不使用NULL)。
关联表可以添加到现有数据库中,而无需修改现有表。


缺点:


多余的表会使您的架构有些混乱。
查询时额外的联接会稍微复杂一些,并且可能会影响性能。
确保每个评论都有一个用户(如果有此要求)会更加复杂。


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

关于sql - 关联表的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767249/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com