Database 实体关系名称与数据库基数
我们必须区分实体关系 我很难理解一件事: 一对多或一对多1:M的关系与1:N是一回事吗? M:N和N:M是一样的吗Database 实体关系名称与数据库基数,database,model,relationship,erd,Database,Model,Relationship,Erd,我们必须区分实体关系 我很难理解一件事: 一对多或一对多1:M的关系与1:N是一回事吗? M:N和N:M是一样的吗 为什么不叫M:M倍数对倍数 有很多不同的术语和符号来识别和说明数据库中的关系。以下是简要总结: 一对多 此术语用于表示1:n关系,如果是可选的,则表示0:n关系。例如,一个作者父实体写了许多书子实体 这可以像这样建模: +--------------+ +--------------+ | Author | | Book | +-----------
为什么不叫M:M倍数对倍数 有很多不同的术语和符号来识别和说明数据库中的关系。以下是简要总结: 一对多 此术语用于表示1:n关系,如果是可选的,则表示0:n关系。例如,一个作者父实体写了许多书子实体 这可以像这样建模:
+--------------+ +--------------+
| Author | | Book |
+--------------+ +--------------+
| PK AuthorId | | PK BookId |
| Name | | Title |
| | | ISBN |
+--------------+ | FK AuthorId |
+--------------+
+--------------+ +--------------+ +--------------+
| Author | | AuthorBook | | Book |
+--------------+ +--------------+ +--------------+
| PK AuthorId | | FK AuthorId | | PK BookId |
| Name | | FK BookId | | Title |
| | +--------------+ | ISBN |
+--------------+ +--------------+
多对一
这与1:n或0:n相同,但从子实体的角度来看。例如,许多书都是由一位作者写的
多对多
这在数据库术语中被称为n:m。例如,两个或两个以上的作者可能是一本书或多本书的共同作者
对这样的关系进行建模的一种非常常见的方法是使用第三个表链接两个实体之间的所有不同关系。在这种情况下,您可能会得到如下结果:
+--------------+ +--------------+
| Author | | Book |
+--------------+ +--------------+
| PK AuthorId | | PK BookId |
| Name | | Title |
| | | ISBN |
+--------------+ | FK AuthorId |
+--------------+
+--------------+ +--------------+ +--------------+
| Author | | AuthorBook | | Book |
+--------------+ +--------------+ +--------------+
| PK AuthorId | | FK AuthorId | | PK BookId |
| Name | | FK BookId | | Title |
| | +--------------+ | ISBN |
+--------------+ +--------------+
其中AuthorBook具有AuthorId和BookId的复合主键
顺便说一句,我从来没有听过倍数对倍数这个词