商品系统设计(三):商品属性设计之固定属性
来源:互联网 发布:fragment 传数据 编辑:程序博客网 时间:2024/04/30 14:34
今天我们讲一下商品属性
我们知道,不同类别的商品属性是不同的。
比如图书和男装
图书:作者、出版社、出版时间、ISBN、开本
男装:工艺(图案或颜色)、风格、材质等
所以我们首先要建立一个商品分类属性表prod_class_attr
DROP TABLE IF EXISTS `prod_class_attr`;CREATE TABLE `prod_class_attr` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `attr_name` varchar(100) DEFAULT NULL COMMENT '属性名称', `attr_note` varchar(100) DEFAULT NULL COMMENT '属性备注', `attr_pid` int(11) DEFAULT '0' COMMENT '属性父 id', `prod_classid` int(11) DEFAULT NULL COMMENT '商品分类id', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4;INSERT INTO `prod_class_attr` VALUES ('1', 'press', '出版社', '0', '1'), ('2', 'author', '作者', '0', '1'), ('3', 'format', '开本', '0', '1'), ('4', 'pressdate', '出版时间', '0', '1'), ('5', 'technics', '工艺', '0', '2'), ('6', 'style', '风格', '0', '2'), ('7', 'target', '适用对象', '0', '2'), ('8', 'material', '材质', '0', '2');
所以接下来要建一个商品属性对应表
prod_id 商品id
attr_id 属性id
attr_value 属性值
注意,在表单中并不是所有用户都会填全属性
CREATE TABLE `prod_attr` ( `prod_id` int(11) NOT NULL, `attr_id` int(11) NOT NULL, `attr_value` varchar(100) DEFAULT NULL, PRIMARY KEY (`prod_id`,`attr_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
新增商品流程
1、第一步,往商品主表插入数据
2、并获取自增的商品ID
3、批量插入商品属性(怎么插入)
先看一个SQL
SELECT 1 AS attr_id, '中信出版社' AS attr_value UNION SELECT 2 AS attr_id, '刘勇' AS attr_value;
这样是为了批量插入到prod_attr
表
下面,我们要把这条SQL放到存储过程中,并且需要动态执行。
这就是一个新建商品的mysql存储过程,商品的属性是在得到商品id之后,根据传入的一个sql字符串,再拼凑成一条插入到表prod_attr
的SQL完成的。
BEGIN SET @pid=0; INSERT INTO prod_main(prod_name,prod_classid) VALUES (_prod_name,_class_id); SET @pid=LAST_INSERT_ID(); #SET @ss='INSERT INTO prod_attr SELECT ? AS prod_id, a.* FROM (SELECT 1 AS attr_id, \'中信出版社\' AS attr_value UNION SELECT 2 AS attr_id, \'刘勇\' AS attr_value) a'; SET @ss=CONCAT('INSERT INTO prod_attr SELECT ? AS prod_id, a.* FROM (',_attr_sql,') a'); PREPARE pname FROM @ss; EXECUTE pname USING @pid; DEALLOCATE PREPARE pname;END
来执行这个sp_new_prod
存储过程:
CALL sp_new_prod('java从入门到精通',1,'SELECT 1 AS attr_id, \'中信出版社\' AS attr_value UNION SELECT 2 AS attr_id, \'刘勇\' AS attr_value');
这样就完成了既插入了prod_mian
商品主表,也插入了prod_attr
商品属性表。
0 0
- 商品系统设计(三):商品属性设计之固定属性
- mysql笔记(六)--商品系统设计(三):商品属性设计之固定属性
- 商品系统设计(四):商品属性设计之自定义属性
- 商品属性设计
- 关于商品属性设计
- 淘宝商品属性设计
- 商品属性表设计
- 商城数据库设计--商品属性
- 商品浏览系统之商品实体类设计
- MyCnCart之商品属性组
- 从淘宝数据结构来看电子商务中商品属性设计
- 从淘宝数据结构来看电子商务中商品属性设计
- 再从淘宝数据结构来看电子商务中商品属性设计
- 从淘宝数据结构来看电子商务中商品属性设计
- 再从淘宝数据结构来看电子商务中商品属性设计
- 如何设计sql数据库,以实现商品自定义属性
- 从淘宝数据结构来看电子商务中商品属性设计
- 再从淘宝数据结构来看电子商务中商品属性设计
- Android的沉浸式状态栏与变色状态栏详解
- Android 超高仿微信图片选择器 图片该这么加载
- 贴吧推广之长尾关键词精准流量引爆技术
- angularJs,ionic字符串操作
- 换行符分隔字符串,多字符分隔字符串
- 商品系统设计(三):商品属性设计之固定属性
- linux 安装turnserver
- .Net导出Excel存在服务器端
- Tomcat的下载与安装以及配置到Eclipse中
- 使用QXDesigner可视化开发RIA系统(一)
- Android之探究viewGroup自定义子属性参数的获取流程
- Convolutional Neural Networks卷积神经网络
- Spring AOP 实现机制和原理详解
- TextView属性之行间距设置