[在许多数据库设计教程/文章中,他们总是提出以下事实:如果两个表共享多对多关系,则应创建第三个表作为关联表以链接这两个表。
[However,他们从不提供原因WHY我们应该这样做。如果您只是保留了两个表而没有关联表,那么我很想知道why和可能出现的问题的示例。
[在许多数据库设计教程/文章中,他们总是提出以下事实:如果两个表共享多对多关系,则应创建第三个表以充当与...的关联表]]
您不能使用关系数据库以任何其他方式建立多对多关系。即,如果您有一个名为“ person”的表,则无法创建“ friends”列,并且期望在其中放置许多朋友的用户标识。您必须制作一个单独的表来保存关系本身。
在关系数据库中,所有关系仅以一种方式表示:作为关系(关系对应于SQL中的表)。具有两个属性(例如R {A,B})的关系表示A和B之间的二进制关系。例如,该关系可以是一对多或多对多。
如果不创建第三个表,则根本没有地方存储关系。
维基百科也对此进行了描述。看看:http://en.wikipedia.org/wiki/Many-to-many_(data_model)
如果DB-Server可以为您创建第3个表,这将不太灵活。如果会有这样的解决方案,对
让我们通过一个例子来理解它。如果您有两个桌子,一个桌子用于苹果,另一个桌子用于人,并且它们之间存在多对多关系;意思是一个人可以有多个苹果,一个人可以通过共享来吃一个苹果。