商品系统设计(一):商品主表设计

编程知识 行业动态 更新时间:2024-06-13 00:18:15

商品主表设计

做一个网站如果涉及到商品有这么几种
固定商品
比如我们只是卖鞋的,那么整个商品的属性基本都是一致的。鞋的颜色、尺寸、款式、品牌、价格等属性。
这时我们涉及到的表往往是“平面的”。

简单设计

商品主表(我们首先假设我们是B2C的)
包含通用信息
(一)即时更新
id、商品名称、所属分类、入库时间、最后一次修改时间、商品简介
(二)延时更新/日志更新
总点击量、月点击量、总销量、月销量,总评价数、月评价数

CREATE TABLE `prod_main` (
  `prod_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `prod_name` varchar(50) DEFAULT NULL,
  `prod_calssid` int(11) DEFAULT NULL COMMENT '商品分类',
  `prod_intr` text,
  `prod_adddate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `prod_lasteddate` timestamp NULL DEFAULT NULL,
  `prod_click_all` int(11) DEFAULT '0',
  `prod_click_month` int(11) DEFAULT '0',
  `prod_sale_all` int(11) DEFAULT '0',
  `prod_sale_month` int(11) DEFAULT '0',
  `prod_rate_all` int(11) DEFAULT '0',
  `prod_rate_month` int(11) DEFAULT '0',
  PRIMARY KEY (`prod_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8mb4;

INSERT INTO `prod_main` VALUES ('1', 'Python基础教程(第2版 修订版)', '1', '\nPython基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)Python基础教程(第2版 修订版)\n企业批量购书\n分享 关注商品举报\nPython基础教程(第2版 修订版)\nPython入门佳作 经典教程的全新修订 10个项目引人入胜', '2017-01-03 17:09:29', '2017-01-03 17:09:22', null, null, null, null, '0', '0');

商品分类表:

CREATE TABLE `prod_class` (
  `prod_classid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `prod_classname` varchar(50) DEFAULT NULL,
  `prod_pclassid` int(11) DEFAULT '0',
  PRIMARY KEY (`prod_classid`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

INSERT INTO `prod_class` VALUES ('1', '图书', '0');

点击量日志表

作为一个电商系统,我们除了指定商品的总点击量。还需要指定商品的周点击量和月点击量。然而这些数据是不能记录在商品主表中的。
同时还需要有个日志表。

CREATE TABLE `prod_clicklog` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `prod_id` int(11) DEFAULT NULL,
  `user_ip` varchar(15) DEFAULT NULL,
  `user_id` int(11) DEFAULT '0',
  `clickdate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

接下来我们来模拟读取商品页面

1、从商品主表根据ID读取商品所有信息
2、如果读取到,则记录点击量日志
知识点:
FOUND_ROWS(),select时返回最近一条sql的结果集条数;
ROW_COUNT(),update/delete/insert 受影响的条数

新建存储过程sp_load_prod

BEGIN
  SET @num=0;
  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


我们来执行这个存储过程:

更多推荐

商品系统设计(一):商品主表设计

本文发布于:2023-03-26 12:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/06aa90f158687d8b9aa593b3ac926c9b.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:商品   系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!