最近有个前端同学想做个小米商城,想委托我搭下后端,我寻思着最近也不忙,就答应了,没想到遇到的难题颇多,光数据库就研究了一星期,勉勉强强弄了个能看的出来。
本来是想着去网上找一个商城数据库改一改的,但百度了发现很难找到完善的商城数据库,基本都是简单的用于学习的,想想也是,哪个公司把他们数据库结构到处传的。被逼无奈,只好自己做了。
首先,商品肯定有分类,先贴我的分类表
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`)
)
商品表除了一些常见的名字价格,我为了简化表结构添加了一些字段
CREATE TABLE `mould` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` text,
PRIMARY KEY (`id`)
)
顺便写了个页面添加参数,我用的springboot,所以是templates(那个太长了,一会贴最后吧)
添加了介绍页和购买页,我看好像点击商品能跳转到的就这两个页了
商品的表就这么三个,然后讲讲我实际数据的情况,本来使用了无限分类应该一层一层分下去的,不过我发现我查询写不出来,无奈只能放两层了,因为只放了两层,本来我打算将所有商品都归到分类中(比如小米9我就打算在分类表中添加一个字段),这样首页显示的时候写接口会简单一些(反正都是我做,能省点事就省点),现在我已经预料到写接口会很繁琐。
最后在扯两句
贴上添加参数的templates
商品:
参数规格: