商城系统中商品模块数据库设计的一些思考
一般我们要做的商城系统比较庞大,最最基础的就是商品表的设计,一件商品又牵扯到商品的属性、规格、分类,每种规格又有不同的库存和价格,所以数据库设计时需要均衡考虑,一个是方便拓展,另一个是方便查询。
看过网上一些的设计,规格设计这块分为横向和纵向之说,横向好像是说每种规格占用一个字段,这样规格很多之后数据库字段也要动态增加,十分不便;纵向的话单独抽出规格表进行设计(大概就是这么意思,理解有误的话欢迎随时指出)。
先来看下,要设计的最终pdm图:
表解释
属性表:存放商品各种属性,比如材质、工艺、产地、面料成分等
商品表:存放真正待售商品,好理解
类别表:存放商品类别,比如:居家、餐厨、饮食、配件等
规格表:存放商品规格,比如:颜色、规格等
商品规格中间表:好理解,商品和规格之间是多对多关联,每种规格会有规格值以及该规格对应的商品图片,比如规格为颜色时,商品的图片可能有白色、黄色等
对应规格下的库存及价格表:这个也好理解,比如粉色规格为24*40的枕头对应的库存和零售价,goods_specification_ids为笛卡尔乘积的规格值,可以使用_或者|获取其它任意字符分开,goods_number即为库存,retail_price即为零售价。
这样设计的话,整个商品规格就十分灵活,随意搭配,可以适应不断增长的商品规格,值得思考一番。
至此,数据库设计就这样了,还是蛮有触动,学到蛮多的~