mysql 数据库关系2或3表-优点和缺点[已关闭]

xmd2e60i  于 2022-12-28  发布在  Mysql
关注(0)|答案(1)|浏览(108)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
我想问一个关于在数据库中存储关系的好处或缺点的问题。
我知道用3. table(连接表)存储信息的方法,如下所示:

table event
eventid
eventname

| 事件|事件名称|
| - ------|- ------|
| 一百零一|事件1|
| 一百零二|事件2|
| 一百零三|事件3|

table team
teamid
teamname

| 茶酰胺|团队名称|
| - ------|- ------|
| 二百零一|A组|
| 二百零二|B队|
| 二百零三|C组|

table eventvisibleforteam
eventid
teamid

| 事件|茶酰胺|
| - ------|- ------|
| 一百零一|二百零一|
| 一百零一|二百零二|
| 一百零一|二百零三|
| 一百零二|二百零一|
| 一百零二|二百零二|
| 一百零三|二百零一|
| 一百零三|二百零三|
我可以简单地使用这种方法只有2表?或有什么缺点?

table team is the same as above

table event
eventid
eventname
visibleforteamid

| 事件|事件名称|可见福替酰胺|
| - ------|- ------|- ------|
| 一百零一|事件A|二十万一千二百零二二百零三|
| 一百零二|事件B|二十万一千二百零二人|
| 一百零三|事件C|二十万一千二百零三人|
如果没有可以使用的连接,我的SQL查询会更容易

SELECT * FROM event WHERE visibleforteamid IN(201)
hxzsmxv2

hxzsmxv21#

当两个表之间存在多对多关系时,我们使用连接表。
连接表的优点和缺点已经在stackoverflow中提出并回答过了。下面是问题的链接。Pros and cons of a junction table between three tables, only two of which at any given time
我强烈建议你学习和理解范式。你建议的解决方案违反了第一范式,我指的是列"visibleforteamid"。a数据库的全部意义就是能够轻松地使用数据并放心地过滤它。在这里你在单个列中存储了不止一条重要的信息。而且,用事务性数据稀释主数据并不是一个好主意。当您创建第三个联接表时,您可以通过添加两个表的外键,在它们之间创建任意数量的关系。https://www.geeksforgeeks.org/normal-forms-in-dbms/
祝你好运!

相关问题