淘淘商城_0300_商品列表的查询

Posted 我俩绝配

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了淘淘商城_0300_商品列表的查询相关的知识,希望对你有一定的参考价值。

1   创建数据库

*****************************************************************************************************

数据库设计到底用不用外键约束?

网上有人说用,有人说不用,好似现在很多人都不用,不用的人观点:

反方观点:
1,可以用触发器或应用程序保证数据的完整性
2,过分强调或者说使用主键/外键会平添开发难度,导致表过多等问题
3,不用外键时数据管理简单,操作方便,性能高(导入导出等操作,在insert,   update,   delete   数据的时候更快)
eg:在海量的数据库中想都不要去想外键,试想,一个程序每天要insert数百万条记录,当存在外键约束的时候,每次要去扫描此记录是否合格,一般还不止一个字段有外键,这样扫描的数量是成级数的增长!我的一个程序入库在3个小时做完,如果加上外键,需要28个小时!  

*****************************************************************************************************

淘淘商城的数据库都没有设置外键,比如商品描述表,直接把商品的item_id当做自己的id了。要么就是,比如商品表有个字段是 cid,就是商品类目id,但是没有做外键约束,在程序中空控制这些属性。

在互联网行业的项目中尽可能的减少表的关联查询。使用冗余解决表的关联问题。有利于分库分表。

本篇先贴出来所有的数据库sql吧!下篇在详细谈论细节!

 

1,商品表设计:

商品算是最重要的表了,跟商品表相关的表还有,商品类目表、商品描述表。

商品类目表描述了商品的类目,效果是这样的:

商品描述表,是商品详情介绍,就像京东淘宝里的一样,可以是文字、图片、视频等,这部分是由富文本编辑器编辑后,存到库里的,是大文本类型。

商品表sql:

CREATE TABLE `tb_item` (
  `id` bigint(20) NOT NULL COMMENT \'商品id,同时也是商品编号\',
  `title` varchar(100) NOT NULL COMMENT \'商品标题\',
  `sell_point` varchar(500) DEFAULT NULL COMMENT \'商品卖点\',
  `price` bigint(20) NOT NULL COMMENT \'商品价格,单位为:分\',
  `num` int(10) NOT NULL COMMENT \'库存数量\',
  `barcode` varchar(30) DEFAULT NULL COMMENT \'商品条形码\',
  `image` varchar(500) DEFAULT NULL COMMENT \'商品图片\',
  `cid` bigint(10) NOT NULL COMMENT \'所属类目,叶子类目\',
  `status` tinyint(4) NOT NULL DEFAULT \'1\' COMMENT \'商品状态,1-正常,2-下架,3-删除\',
  `created` datetime NOT NULL COMMENT \'创建时间\',
  `updated` datetime NOT NULL COMMENT \'更新时间\',
  PRIMARY KEY (`id`),
  KEY `cid` (`cid`),
  KEY `status` (`status`),
  KEY `updated` (`updated`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=\'商品表\';

商品描述表:

CREATE TABLE `tb_item_desc` (
  `item_id` bigint(20) NOT NULL COMMENT \'商品ID\',
  `item_desc` text COMMENT \'商品描述\',
  `created` datetime DEFAULT NULL COMMENT \'创建时间\',
  `updated` datetime DEFAULT NULL COMMENT \'更新时间\',
  PRIMARY KEY (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=\'商品描述表\';

商品类目表:

CREATE TABLE `tb_item_cat` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT \'类目ID\',
  `parent_id` bigint(20) DEFAULT NULL COMMENT \'父类目ID=0时,代表的是一级的类目\',
  `name` varchar(50) DEFAULT NULL COMMENT \'类目名称\',
  `status` int(1) DEFAULT \'1\' COMMENT \'状态。可选值:1(正常),2(删除)\',
  `sort_order` int(4) DEFAULT NULL COMMENT \'排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数\',
  `is_parent` tinyint(1) DEFAULT \'1\' COMMENT \'该类目是否为父类目,1为true,0为false\',
  `created` datetime DEFAULT NULL COMMENT \'创建时间\',
  `updated` datetime DEFAULT NULL COMMENT \'创建时间\',
  PRIMARY KEY (`id`),
  KEY `parent_id` (`parent_id`,`status`) USING BTREE,
  KEY `sort_order` (`sort_order`)
) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COMMENT=\'商品类目\';

 商品列表的查询很简单,就不多说了,看这里http://www.cnblogs.com/lihaoyang/p/6831479.html

 

 

 

 

用户表:

CREATE TABLE `tb_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL COMMENT \'用户名\',
  `password` varchar(32) NOT NULL COMMENT \'密码,加密存储\',
  `phone` varchar(20) DEFAULT NULL COMMENT \'注册手机号\',
  `email` varchar(50) DEFAULT NULL COMMENT \'注册邮箱\',
  `created` datetime NOT NULL,
  `updated` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`) USING BTREE,
  UNIQUE KEY `phone` (`phone`) USING BTREE,
  UNIQUE KEY `email` (`email`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT=\'用户表\';

 查询商品列表分页用的PageHelper,

 

Sku:最小库存量单位。就是商品id。就是商品最细力度的划分。每个sku都唯一对应一款商品,商品的颜色、配置都已经唯一确定。

 

欢迎关注个人公众号一起交流学习:

以上是关于淘淘商城_0300_商品列表的查询的主要内容,如果未能解决你的问题,请参考以下文章

淘淘商城第二天

淘淘商城2

淘淘商城---8.7

淘淘商城---8.7

淘淘商城的第一天

淘淘商城第一天——项目介绍与项目搭建