一个项目之中,会有很多数据,众多数据之间也存在这各种关系,如何依据这些关系设计出更符合实际且适合的表及之间的关联关系也是我们所必须学习的
一、常见部门表结构分析
几乎所有框架里面都有一张部门表,我们先来看一下他的结构,先放上两张表,可以看出两张表都有几个重要的字段:部门的主键id,以及父级id,及部门的名字,第一张表还有一个表的所有父级id。
他主要是用一个父级id实现一个表的部门的层级包含关系。具体展示如下:
可以显示一个层级的逐层递减及包含关系。
二、关于产品信息管理的表结构分析
1、基础表结构介绍
前面我们浅谈了一下,部门与部门之间的一个关联关系,那当我们进行一个产品信息管理时,比如一个有各自对应的一个规格、品质的属性:
对产品进行一个外键的关联,而不像上面的部门表格一样包含关系,他更多的是一种一 一对应的关系。 最终得到的数据结构为一张n*n的数据格式表格。
2、通用商品表设计
- category-----分类表
设置上级分类,满足产品的多级分类,类似于上面的部门表。
- attribute----属性表
主要用于设置值属性的类别,比如一部手机有多个属性比如颜色,内存等等。
- spu-----spu表
设置商品的主体 ,SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。
- spu_attribute_value-----通用属性值表
用于记录一个基础商品属性的值。
- sku------sku表
SKU为一个库存量单元,是物理上不可分割的最小存货单元,一个spu有多个sku。按照所拥有属性值实现n*n个sku
- sku_attribute_value-----商品属性值
和基本属性表的表设计相同。 看业务需求,可合并为一张表
关于spu和sku的设计,很多也将属性及属性值以一种键值对json形式进行存储。
参考视频:【仿京东实现mysql通用商品表设计】 https://www.bilibili.com/video/BV1Ud4y1s7xg/?share_source=copy_web