MySQL表关系总结

  • 2020 年 9 月 27 日
  • 笔记

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

一对多关系,一般是一个表的主键对应另一个表的非主键,主键的值是不能重复的,而非主键值是可以重复的,

一个主键值对应另一个表的非主键的值,那么就只有一个值对一个值或一个值对多个值两种可能,故称一对多。

 

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

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

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

 

例如:新到商品苹果手机,有两种型号,土豪金 1499、暗夜灰 1899。我们要在网上售卖,则需要创建苹果手机商品,并且添加苹果手机有两种型号。

可以通过两种方式:

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

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

 

总结:

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

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