mysql颠覆实战笔记(四)--商品系统设计(一):商品主表设计
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享。但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的《web级mysql颠覆实战课程 》。如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址。
这几节课沈老师先带我们说道一下商品表。
固定商品:譬如我们只是卖鞋,那么整个商品的属性基本都是一致的,列如鞋的颜色、尺寸、款式、品牌、价格。这时候我们涉及到的表往往是平面的。
这种涉及方法的特点:
1、纯定制化。
2、开发快,仅仅只要针对某些元素开发。
3、但是扩展性差,一旦我们新增了其他类型商品,那么真个系统就要重新做。
4、时间久了,这张表会无比大。影响系统性能。
所以我们尽可能的要设计一个相对通用的商品表。以适应大部分的电商系统。
今天我们先来设计一个商品主表(我们首先假设我们的是B2C)
包含通用信息:
(一)即时更新:id,商品名称,所属分类,入库时间,最后一次修改时间,商品简介。
(二)延时更新/日志更新:总点击量,月点击量,总销售量,月销售量,总评价数,月评价数。
下面我们在navicat里创建表 prod_main:
其中 prod_id 设置自动增长,设置为主键。
prod_adddate设置默认值为CURRENT_TIMESTAMP.
然后我们根据字段随便给这个表填入一个数据。
我们再创建一个简单的商品类别表 prod_class:
![](data:image/png;base64,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)
点击量日志表:
作为一个电商系统,我们出料知道商品的总点击量,还需要知道商品的周点击和月点击,然后这些数据是不能记录在商品主表中的。
课程中我们简单点,设计到月点击就好。
我们来创建prod_clicklog表:
![](data:image/png;base64,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)
接下来,我们用存储过程来模拟读书商品页面:
1、从商品主表根据ID读取商品所有信息。
2、如果读取到,则记录点击日志。
我们要注意的知识点:FOUND_ROWS() select时返回最近一条SQL的结果及条数。
ROW_COUNT(): update delete insert受影响的条数。
BEGIN SELECT * FROM prod_main WHERE prod_id = _prod_id LIMIT 1; SET @num=FOUND_ROWS(); IF @num=1 THEN #代表商品取出成功 INSERT INTO prod_clicklog(prod_id,user_ip,user_id) VALUES (_prod_id,_user_ip,_user_id); END IF; END 参数:IN _prod_id int,IN _user_ip varchar(15),IN _user_id int
老规矩,我们新建查询,CALL一下,得到结果:
然后我们再:
SELECT * from prod_clicklog;
下节课再见!
上一节:mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法
下一课:mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量