小米商城商品数据库

最近有个前端同学想做个小米商城,想委托我搭下后端,我寻思着最近也不忙,就答应了,没想到遇到的难题颇多,光数据库就研究了一星期,勉勉强强弄了个能看的出来。

本来是想着去网上找一个商城数据库改一改的,但百度了发现很难找到完善的商城数据库,基本都是简单的用于学习的,想想也是,哪个公司把他们数据库结构到处传的。被逼无奈,只好自己做了。

首先,商品肯定有分类,先贴我的分类表

CREATE TABLE `category` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '类别id',
  `parent_id` int(11) NOT NULL COMMENT '父类别id 当id=0是说明是根节点',
  `name` varchar(50) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '1' COMMENT '状态',
  `sort_order` int(4) DEFAULT NULL COMMENT '排序编号,同类展示顺序',
  `is_show` tinyint(1) DEFAULT '0' COMMENT '是否显示在首页,不包含根类',
  `showimage` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '首页显示图片',
  `introducePage` varchar(255) DEFAULT NULL COMMENT '点击跳转页面',
  PRIMARY KEY (`id`)
) 

用无限级分类(我是不太懂这个,数据库不太行,无限查询都写不出来),然后我加了个首页显示图片以及跳转页面的字段,用来显示首页分类那块数据

然后就是商品表

CREATE TABLE `produce` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) DEFAULT NULL,
  `is_new` tinyint(1) DEFAULT NULL,
  `create_time` datetime(6) DEFAULT NULL,
  `label` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '标签 用于首页推荐分类,查询等',
  `name` varchar(100) NOT NULL,
  `subtitle` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '商品副标题',
  `main_image` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '产品主图相对地址',
  `sub_images` text COMMENT '图片地址,json',
  `homepage_images` varchar(200) DEFAULT NULL,
  `homepage_subtitle` varchar(200) DEFAULT NULL,
  `detail` text COMMENT '商品详情',
  `price` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '价格 两位小数',
  `stock` int(11) DEFAULT NULL COMMENT '库存数量',
  `status` int(6) DEFAULT '1' COMMENT '商品状态1-在售 2-下架 3-删除',
  `is_discount` tinyint(1) DEFAULT NULL COMMENT '促销',
  `discount_price` decimal(20,0) DEFAULT NULL COMMENT '促销价',
  `discount_describe` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '促销描述',
  `color` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '选择颜色',
  `edition` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '选择版本',
  `size` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '选择尺寸',
  `capacity` varchar(255) DEFAULT NULL COMMENT '容量 ',
  `packages` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '套餐',
  `style` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '款式',
  `introducePage` varchar(255) DEFAULT NULL COMMENT '介绍页面',
  `buyPage` varchar(255) DEFAULT NULL COMMENT '购买页面',
  PRIMARY KEY (`id`)
)

商品表除了一些常见的名字价格,我为了简化表结构添加了一些字段

  1. 我添加了label字段,用来进行模糊查询,小米首页下面的分类我看着很繁琐,而且其他地方也没看见用来,要是都添加到数据库里就是多对多了,需要一个中间表,所以我干脆添加label字段用于模糊查询,此外label还用于搜索。
  2. 我看了一些商品,发现商品购买时的可选项不多,就颜色、版本、尺寸、容量、套餐、款式这几项,并不像淘宝那么多,既然如此,就直接添加到商品表中,数据冗余也不管了
  3. 商品详情我就放了一个字段,我看了一些商品sku的文章,基本都说用模板加json格式保存产品参数,所以我又创建了一个模板表
    CREATE TABLE `mould` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `data` text,
      PRIMARY KEY (`id`)
    )

    顺便写了个页面添加参数,我用的springboot,所以是templates(那个太长了,一会贴最后吧)

  4.  

    添加了介绍页和购买页,我看好像点击商品能跳转到的就这两个页了

商品的表就这么三个,然后讲讲我实际数据的情况,本来使用了无限分类应该一层一层分下去的,不过我发现我查询写不出来,无奈只能放两层了,因为只放了两层,本来我打算将所有商品都归到分类中(比如小米9我就打算在分类表中添加一个字段),这样首页显示的时候写接口会简单一些(反正都是我做,能省点事就省点),现在我已经预料到写接口会很繁琐。

最后在扯两句

  1. 重要的事说三遍,数据不要复制粘贴!数据不要复制粘贴!数据不要复制粘贴!如果你想添完手疼,就无视一条(不堪回首啊)最好是写爬虫添数据(虽然我不会,咳咳),但学个简单的爬虫肯定比你复制粘贴快
  2. 这个表结构还很粗糙,虽然我得先用它来写接口,不过肯定还得改,要是有建议的小伙伴可以留言告诉我,也可以加我QQ1057168743

贴上添加参数的templates



  
  	
	
	
	
  
  
  
  	
商品:
参数规格:

 

你可能感兴趣的:(小米商城商品数据库)