跳到主要内容

MySQL实体[entity]

实体和实体之间的关系

1、一对一

2、一对多 (多对一)

3、多对多

1536975724695

一对多 1:N

1、主表中的一条记录对应从表中的多条记录。

2、一对多和多对一是一样的

![1536976096582](/images/mysql/1536976096582.png)
***

如何实现一对多?

答:主键和非主键建关系

问题:说出几个一对多的关系?

答:班级表和学生表、 班主表和学生表

一对一(1:1)

1、主表中的一条记录对应从表中的一条记录

![1536976513236](/images/mysql/1536976513236.png)

如何实现一对一?

主键和主键建关系就能实现一对一。

思考:一对一两个表完全可以用一个表实现,为什么还要分成两个表?

答:在字段数量很多情况下,数据量也就很大,
每次查询都需要检索大量数据,这样效率低下。
我们可以将所有字段分成两个部分,“常用字段”和“不常用字段”,这样对大部分查询者来说效率提高了。【表的垂直分割】

多对多(N:M)

表现形式是创建了关系表。

主表中的一条记录对应从表中的多条记录,从表中的一条记录对应主表中的多条记录

班级和讲师的关系

![1536977577667](/images/mysql/1536977577667.png)

如何实现多对多?

答:建立第三张表来保存关系。

问题:说出几个多对多的关系?

1、科目表和学生表的关系 2、商品表和订单表 3、游戏目录表和玩家表