商品系统设计(三):商品属性设计之固定属性
2017-01-05 10:34
375 查看
今天我们讲一下商品属性
我们知道,不同类别的商品属性是不同的。比如图书和男装
图书:作者、出版社、出版时间、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 商品idattr_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商品属性表。
相关文章推荐
- mysql笔记(六)--商品系统设计(三):商品属性设计之固定属性
- 商城系统商品属性的数据库设计思路
- 商城系统商品属性的数据库设计思路
- (转)商城系统商品属性的数据库设计思路
- 商品系统设计(四):商品属性设计之自定义属性
- B2C电子商务系统研发——商品SKU分析和设计(二)
- 使用策略设计模式,反射,解决商城系统中的商品折扣问题
- 中小型商城系统中的分类/产品属性/扩展属性的数据库设计
- 商品销售管理系统设计论文--毕业设计
- 2 Ant的 location属性专门设计用于以平台无关的方式包含文件系统路径
- 再从淘宝数据结构来看电子商务中商品属性设计
- 淘宝数据结构来看电子商务中商品属性设计
- 电子商务系统的商品实体分析和设计
- B2C电子商务系统研发——商品SKU分析和设计(一)
- B2C电子商务系统研发——商品SKU分析和设计(一)
- OEA 扩展属性系统 - 任意适配 WPF Binding 的设计分析
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十八) 经典式属性设计及完美的物理攻击系统
- 电子商务系统的商品实体分析和设计
- 从淘宝数据结构来看电子商务中商品属性设计