关于电商的数据库设计
时间:2022-08-03 13:18:01 | 来源:网站运营
时间:2022-08-03 13:18:01 来源:网站运营
电商的数据库设计还是比较麻烦一点的,原因有三个:
1.商品的归类有多个层级,一般设计最少分2级,如“居家”是一个一级类目,“居家”这个类目下面还分为“床上用品”、“灯具”等二级类目,如果是2级分类也就到此为止了,再往下就是商品了,比如“床品四件套”
2、商品有共有的描述属性,如价格、数量、是否在售等,但每一类(二级类目)商品也有独特的描述属性,如对于“床上用品”这个类目来讲“材质”是顾客关心的属性,但对于“交通工具”这个类目来讲就没有”材质“这一属性了,顾客对这一类商品关心的是”能源类型“了,也就是说虽然都是类目,但每个类目的属性是不同的
3、同一种品牌的商品在销售和入库的时候要更具体化为产品,即转化为现实生活中的对应物。如“苹果”手机是一件商品,但销售的时候如果顾客只给出这样的信息还不足以让商家了解顾客的具体需求,需要进一步的指明商品的规格,如颜色、型号等
关系型数据库在描述上述信息时就比较困难,因为不同的产品需要不同的属性、规格、品牌加以描述,如果取所有产品的属性合集,那将是多么多字段的一条记录啊
对于以上的问题,在开源项目中看到的一种解决方案:
1.类目表,字段有:类目代码、类目名、父类代码。如果是一级类目,那么父类代码为0
2.品牌表
3.需额外属性描述的类目表
4.类目属性表,字段有:二级类目名、属性名
5.商品属性表,字段有:商品id,属性名,属性值
6.产品规格表:字段有:id(即产品规格id),产品规格名id,规格值
7.规格说明表
8.产品表:规格(以下划线连接的字符串,表示规格数组),……
以上这些也就是所谓的横表变竖表的解决方案
在网上看到还有一种:
产品用一条记录,记录中增加prop1,prop2…字段,然后再建一个属性解释表,对每种产品的prop1、prop2…进行解释
希望这些总结的方法能对读者有所启发,我也会随着实际项目的开发,不断加深对表设计的理解,到时候再总结吧