淘淘商城_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_商品列表的查询的主要内容,如果未能解决你的问题,请参考以下文章