需要关联表的多对多关系

问题描述 投票:1回答:6

[在许多数据库设计教程/文章中,他们总是提出以下事实:如果两个表共享多对多关系,则应创建第三个表作为关联表以链接这两个表。

[However,他们从不提供原因WHY我们应该这样做。如果您只是保留了两个表而没有关联表,那么我很想知道why可能出现的问题的示例。

[在许多数据库设计教程/文章中,他们总是提出以下事实:如果两个表共享多对多关系,则应创建第三个表以充当与...的关联表]]

database-design many-to-many
6个回答
2
投票

您不能使用关系数据库以任何其他方式建立多对多关系。即,如果您有一个名为“ person”的表,则无法创建“ friends”列,并且期望在其中放置许多朋友的用户标识。您必须制作一个单独的表来保存关系本身。


3
投票

在关系数据库中,所有关系仅以一种方式表示:作为关系(关系对应于SQL中的表)。具有两个属性(例如R {A,B})的关系表示A和B之间的二进制关系。例如,该关系可以是一对多或多对多。


1
投票

如果不创建第三个表,则根本没有地方存储关系。


0
投票

维基百科也对此进行了描述。看看:http://en.wikipedia.org/wiki/Many-to-many_(data_model)


0
投票

如果DB-Server可以为您创建第3个表,这将不太灵活。如果会有这样的解决方案,对


0
投票

让我们通过一个例子来理解它。如果您有两个桌子,一个桌子用于苹果,另一个桌子用于人,并且它们之间存在多对多关系;意思是一个人可以有多个苹果,一个人可以通过共享来吃一个苹果。

© www.soinside.com 2019 - 2024. All rights reserved.