MySQL表关系的理解

微信扫一扫,分享到朋友圈

MySQL表关系的理解

关系型数据库表之间存在各种各样的联系,及一对多,多对一,多对多。这里主要讲下一对多,为什么要创建表之间的关联(为什么要创建另一张表)。

一对多的定义:

一对多关系
  : 一对多关系是关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。

一对多关系,一般是一个表的主键对应另一个表的非主键,主键的值是不能重复的,而非主键值是可以重复的,一个主键值对应另一个表的非主键的值,那么就只有一个值对一个值或一个值对多个值两种可能,故称一对多。

思考一下,单独的商品表、订单表、酒店表无法记录这条信息吗?

商品表:一个苹果手机,有土豪金,暗夜灰两种规格。

订单表:一个订单,购买了脸盆、电脑两个商品。

酒店表: 一个酒店,有商务房、总统套房。

举个:chestnut: :新到商品苹果手机,有两种型号,土豪金 1499、暗夜灰 1899。

可以通过两种方式:

1.创建商品,添加规格字段,来记录商品有哪些规格[xx,xx,xx],这种方式虽然单表可以一条记录包括所有信息,但是数据量过多会导致查询缓慢。

2.新建规格表,为需要添加规格商品创建规格记录,及goods_uuid=我们要添加规格的商品uuid。查询时通过goods_uuid到对应字段及可查询。  

总结:

1.单表可以存放一条记录的完整信息,但是不符合规范。

2.因为单表我们创建一条记录无法表达这条记录的完整性, 所以需要创建另一张表来完善这条记录的完整性。

微信扫一扫,分享到朋友圈

MySQL表关系的理解

01-Python安装教程与特色介绍-小白python入门基础

上一篇

倪光南院士:中国可能否决NVIDIA收购ARM!

下一篇

你也可能喜欢

MySQL表关系的理解

长按储存图像,分享给朋友