mysql颠覆实战笔记(六)--商品系统设计(三):商品属性设计之固定属性

今天我们来讲一下商品属性  

  我们知道,不同类别的商品属性是不同的。  
  我们先建一个表prod_class_attr:    给这个表填入一些数据:    接下来,我们再建一个商品属性对应表 prod_attr    好了,下面我们把新增商品的流程撸一遍:  第一步,往商品主表插入数据  我们来新建一个存储过程 sp_new_prod:
BEGIN
    INSERT INTO prod_main(prod_name,prod_classid) VALUES (_prod_name,_class_id);

END  参数:IN _prod_name varchar(50),IN _class_id int

  call一下

call sp_new_prod(‘测试商品001‘,1)

  于是在主表中,我们就可以看到刚刚插入的数据

  

  现在我们动态执行sql

  

 ok,我们按照这个思路,重写刚才的存储过程
BEGIN
    set @pid=0;
    INSERT INTO prod_main(prod_name,prod_classid) VALUES (_prod_name,_class_id);
    set @pid = LAST_INSERT_ID();
    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

  现在这个过程,我们一次性完成插入数据,又添加属性。


上一课:mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享。但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的《web级mysql颠覆实战课程 》。如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址。

时间: 2024-10-09 21:44:44

mysql颠覆实战笔记(六)--商品系统设计(三):商品属性设计之固定属性的相关文章

mysql颠覆实战笔记(四)--商品系统设计(一):商品主表设计

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 这几节课沈老师先带我们说道一下商品表. 固定商品:譬如我们只是卖鞋,那么整个商品的属性基本都是一致的,列如鞋的颜色.尺寸.款式.品牌.价格.这时候我们涉及到的表往往是平面的. 这种涉及方法的特点: 1.纯定制化. 2.开发快,仅仅只要针对某些元素开发. 3.但是扩展性差,一旦我们新

mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量

继续回到沈老师的MYSQL颠覆实战,首先回顾下上一节课的内容,请大家会看下上节课写的存储过程. 打开prod_clicklog表, 我们只要把日期(不含时分秒)的部分存在数据库中, 如果同一日期有相同用户点击商品,那么我们对其数值+1,否则的话,这张点击日志表会过于庞大 下面我们将prod_clicklog表修改下: 将字段clickdate 修改为 date类型,增加clicknum字段,默认为1. 然后,我们把上一节课的存储过程sp_load_prod再修改一下: BEGIN SELECT

mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 现在我们接着上节课,完成第二个功能,不管成功不成功都记录一个日志. 一.回顾上节课内容,我们在user_log表中添加一个字段 user_id.  在上一节课的存储过程新增一行代码,如下: BEGIN set @gid=0; set @user_name=''; set @_res

mysql颠覆实战笔记(七)--白话理解事务

今天我们学习web开发级mysql颠覆实战课程第9课没MYSQL事务(一):白话理解事务.前面有两节课第7讲:商品系统设计(四):商品属性设计之自定义属性,第8讲:商品系统设计(五):一维属性的商品价格表设计的笔记本人省略,没有原因,个人爱好. 所谓事务,用老师白话理解就是: 1.不止要执行一个步骤.2.这些步骤每一步都按照既定想法去执行,错一步那么整个过程都反悔.3.事务进行时,外界干扰无法影响. 这算是老师的一个基础讲解,首先我们来建一张用户余额表,这个表我们采用的是Innodb模式,在这个

mysql颠覆实战笔记(二)-- 用户登录(一):唯一索引的妙用

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 一.首先我们用上节课的存储过程对两张表压100万数据(各100万). 第一表 user_sys我们使用的是InnoDB模式,小卒自己的插入结果是: 第二张表 user_sys2我们使用的是MyISAM模式,小卒自己的插入结果是: 两个引擎的效率差异明显,所以我们再使用中根据实际情况

mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破

这一节课,沈老师带我们了解事务的异常 什么是异常? 我们先插入一组数据: insert into user_balance(user_id,user_money) values (3,10.5); 这个是正常的.但是我们把插入的user_money的值故意弄错:如下 insert into user_balance(user_id,user_money) values (3,‘abc’); 那么我们会得到一个ERR . 这个错误是如果报出来的呢?老师直接用工具新建一个存储过程来给我们演示: BE

【慕课网实战】Spark Streaming实时流处理项目实战笔记六之铭文升级版

铭文一级: 整合Flume和Kafka的综合使用 avro-memory-kafka.conf avro-memory-kafka.sources = avro-sourceavro-memory-kafka.sinks = kafka-sinkavro-memory-kafka.channels = memory-channel avro-memory-kafka.sources.avro-source.type = avroavro-memory-kafka.sources.avro-sou

mysql颠覆实战学习记录 :用户充值功能实现(二):钱的安全性之表锁 12

表锁分为read和write read锁: lock table 表名 read; unlock tabls; #解锁 当前会话只能读取数据,不能插入数据. 其他会话能读取数据,不能插入数据,解锁后数据插入. write锁: lock table 表名 write; 当前会话可以读书数据,可以插入数据: 其他会话,不能读取数据,也不能插入数据:

mysql颠覆实战学习记录 :用户充值功能实现(一):当服务器卡顿7秒发生了什么 11

1.首先创建两个表,充值日志表(user_balance_log).用户余额表(user_balance) 表结构如下: (1)user_balance: (2)user_balance_log: 注:log_type 日志类型1代表充值 2代表消费 3代表转账 2.写存储过程模拟用户充值 BEGIN #Routine body goes here... declare t_error int default 0; declare usercount int default 0 ; declar