Code前端首页关于Code前端联系我们

电商项目产品表(spu)、规格表(sku)数据库设计指南

terry 2年前 (2023-09-26) 阅读数 45 #数据库

无论您是开发B2C、B2B2C还是B2B项目等电商项目,实现上述详情页是必不可少的。可以从页面轻松检索产品名称、主要产品图片和产品详细信息。这意味着当产品种类较多时,每种产品都有不同的规格,不同的规格会对应不同的价格和库存,处理起来比较困难。以上图为例,不同的机身颜色和存储容量的组合会有不同的库存和不同的价格。

以下是SKU如何实现此功能,不相关的字段将被屏蔽。

分类数据库表中的商品太多,所以一般都是按类别进行管理。比如可以分为手机类和电脑类。

创建表 `category` (
`id` int(10) unsigned NOT NULL AUTO_INCRMENT COMMENT '主键',
`parent_id` int(10) unsigned NOT NULL COMMENT COMMENT key' ',
`category_name' varchar(32) 字符集 utf8 COLLATE utf8_general_ci NOT NULL COMMENT '类别名称',
PRIMARY KEY (`id`)
DECH 8 SK '类别表';

属性键数据库表,一般一个类别,都会有相似的属性,比如手机有内存、颜色等属性。

CREATE TABLE `attribute_key` (
`id` int(10) unsigned NOT NULL AUTO_INCRMENT COMMENT 'primary key',
`category_id` int(255) unsigned COMMENT 或 NOT NULL key `attribute_name` varchar(32) 字符集 utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'attribute ke value',
主键 (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='属性键表';

属性值数据库表。根据数据库设计范式的原理,属性和属性值会存储在不同的表中,所以就会多一张表。保存属性值。

创建表 `attribute_value` (
`id` int(10) unsigned NOT NULL AUTO_INCRMENT COMMENT '主键',
`attribute_id` key int(10) unsigned key NOT COMMENT
`attribute_value` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '属性值',
PRIMARY KEY (`id`)=u'无 CH8DBURMENT ENGINE 表';

添加时与上表必要条件此时后台新增商品需要商品表和规格表,添加spu商品信息和sku规格信息,先保存商品信息,保存成功后保存商品规格,在一起就是一笔生意。

CREATE TABLE`商品` (
`id` int(10) unsigned NOT NULL AUTO_INCRMENT COMMENT '主键',
`category_identifier` int(10) unsigned NOT NULL 外部注释 `attribute_list` text 字符集 utf8 COLLATE utf8_general_ci NOT NULL COMMENT '规格列表',
PRIMARY KEY (`id`)= ) ENGINE=InnoDB DEFAULT CHARACTER CREATE TABLE "product_specations" (
`id` int(10) unsigned NOT NULL AUTO_INCRMENT COMMENT '主键',
`goods_id` int(10) unsigned NOT NULL COMMENT '商品外键',
`goods_INCRMENT `text_goods_INCRATE ` text ufci 8 COOD 8 CHARACTER NULL COMMENT '商品规格',
`stock_goods` int(10) unsigned NOT NULL PREVIOUS '0' COMMENT '商品清单',
`goods_price` 十进制数 (10,2) unsigned NOT 0 NULL DEFAULT '产品价格',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='规格表';

这样我们就在数据库中存储了不同产品的不同规格

点击不同的车身颜色和存储容量后,客户端界面会使用goods_id和goods_specs字段查询goods_specs表,获取库存和价格,类似运行以下sql

SELECT * FROMgoods_specs WHEREgoods_id=' 1' AND Goods_specs='{"Memory": "128GB", "Color": "Black"}';
1

运行完整体逻辑,剩下的就是在此基础上继续优化完善最终达到产品预期的效果。
——————————————
版权声明:本文为CSDN博主“程序员佛”原创文章,受CC 4.0 BY-SA版权协议管辖。再次打印。随附原始来源和本声明的链接。
原文链接:https://blog.csdn.net/rulaixiong/article/details/119894036

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门