2014-10-19 63 views
0

我们必须区分实体关系。实体关系标识与数据库基数

我有一个问题明白了一两件事:

是关系一对多或一对多(1:M)同样的事情,1:N? 而且,M:N与N:M相同。

为什么不叫M:M(多对多)?

回答

0

那么有很多不同的术语和记号来识别和说明数据库中的关系。下面是快速摘要:

一对多

这个术语用来表示一个1:n关系(或0:n如果它是可选的)。例如,一位作者(父母实体)写了很多书(儿童实体)。

这可以被模型化这样的:

+--------------+ +--------------+ 
| Author  | | Book   | 
+--------------+ +--------------+ 
| PK AuthorId | | PK BookId | 
|  Name  | |  Title | 
|    | |  ISBN  | 
+--------------+ | FK AuthorId | 
        +--------------+ 

多对一

这比1:n(或0:n),但是从子实体点相同。例如,一位作者写的很多书。

多对多

这是创造在数据库方面具有n:m。例如,两个或两个以上的作者可能是一本书或许多书籍的助手。

一个非常常见的方式来模拟这样的关系是使用第三个表链接两个实体之间的所有不同关系。在这种情况下,你可能最终的东西是这样的:

+--------------+ +--------------+ +--------------+ 
| Author  | | AuthorBook | | Book   | 
+--------------+ +--------------+ +--------------+  
| PK AuthorId | | FK AuthorId | | PK BookId | 
|  Name  | | FK BookId | |  Title |  
|    | +--------------+ |  ISBN  | 
+--------------+     +--------------+ 

凡AuthorBook与AuthorIdBookId复合主键。

顺便说一句,我从来没有听说过这个词多倍于