在商城系统中我们会使用到很多基础环境,比如MySQL数据库、Nacos注册中心、Redis数据库等、这些我们都会安装在Docker容器中。所以接下来我们搭建下基础环境
Linux环境我们使用的是centos7.9。官方下载地址是:http://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/
这部分内容比较基础,具体操作请参考本文的Linux系列:
https://blog.csdn.net/qq_38526573/category_9285226.html
Docker的安装和常用命令相关内容参考本人的Docker系列文章:https://blog.csdn.net/qq_38526573/category_9619681.html 此处不在赘述。
既然是在Docker容器中安装相关的软件。那么安装应该是非常轻松的、MySQL的安装只需要执行如下命令即可
docker run -di --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
表示MySQL数据的创建和启动都是OK的。
在微服务中的注册中心我们使用的Nacos、所以现在我们就在Docker将Nacos给安装了。执行如下命令
docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server
执行完成后、我们可以看到对应的镜像和容器。
测试方式: http://192.168.100.140:8848/nacos 账号:nacos 密码: nacos
登录成功效果:
品牌表:brand
CREATE TABLE `brand` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '品牌id',
`name` varchar(100) NOT NULL COMMENT '品牌名称',
`image` varchar(1000) DEFAULT '' COMMENT '品牌图片地址',
`initial` varchar(1) DEFAULT '' COMMENT '品牌的首字母',
`sort` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=325475 DEFAULT CHARSET=utf8 COMMENT='品牌表';
商品分类表:category
CREATE TABLE `category` (
`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '分类ID',
`name` varchar(50) DEFAULT NULL COMMENT '分类名称',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`parent_id` int(20) DEFAULT NULL COMMENT '上级ID',
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11177 DEFAULT CHARSET=utf8 COMMENT='商品类目';
品牌分类关联表:category_brand
CREATE TABLE `category_brand` (
`category_id` int(11) NOT NULL COMMENT '分类ID',
`brand_id` int(11) NOT NULL COMMENT '品牌ID',
PRIMARY KEY (`brand_id`,`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
商品属性表:sku_attribute
CREATE TABLE `sku_attribute` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) DEFAULT NULL COMMENT '属性名称',
`options` varchar(2000) DEFAULT NULL COMMENT '属性选项',
`sort` int(11) DEFAULT NULL COMMENT '排序',
`category_id` varchar(100) DEFAULT NULL COMMENT '分类ID集合',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=140 DEFAULT CHARSET=utf8;
商品SPU表:spu
CREATE TABLE `spu` (
`id` varchar(60) NOT NULL COMMENT '主键',
`name` varchar(100) DEFAULT NULL COMMENT 'SPU名',
`intro` varchar(200) DEFAULT NULL COMMENT '商品简介',
`brand_id` int(11) DEFAULT NULL COMMENT '品牌ID',
`category_one_id` int(20) DEFAULT NULL COMMENT '一级分类',
`category_two_id` int(10) DEFAULT NULL COMMENT '二级分类',
`category_three_id` int(10) DEFAULT NULL COMMENT '三级分类',
`images` varchar(1000) DEFAULT NULL COMMENT '图片列表',
`after_sales_service` varchar(50) DEFAULT NULL COMMENT '售后服务',
`content` longtext COMMENT '介绍',
`attribute_list` varchar(3000) DEFAULT NULL COMMENT '规格列表',
`is_marketable` int(1) DEFAULT '0' COMMENT '是否上架,0已下架,1已上架',
`is_delete` int(1) DEFAULT '0' COMMENT '是否删除,0:未删除,1:已删除',
`status` int(1) DEFAULT '0' COMMENT '审核状态,0:未审核,1:已审核,2:审核不通过',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
商品SKU表:sku
CREATE TABLE `sku` (
`id` varchar(60) NOT NULL COMMENT '商品id',
`name` varchar(200) NOT NULL COMMENT 'SKU名称',
`price` int(20) NOT NULL DEFAULT '1' COMMENT '价格(分)',
`num` int(10) DEFAULT '100' COMMENT '库存数量',
`image` varchar(200) DEFAULT NULL COMMENT '商品图片',
`images` varchar(2000) DEFAULT NULL COMMENT '商品图片列表',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`spu_id` varchar(60) DEFAULT NULL COMMENT 'SPUID',
`category_id` int(10) DEFAULT NULL COMMENT '类目ID',
`category_name` varchar(200) DEFAULT NULL COMMENT '类目名称',
`brand_name` varchar(100) DEFAULT NULL COMMENT '品牌名称',
`sku_attribute` varchar(200) DEFAULT NULL COMMENT '规格',
`status` int(1) DEFAULT '1' COMMENT '商品状态 1-正常,2-下架,3-删除',
PRIMARY KEY (`id`),
KEY `cid` (`category_id`),
KEY `status` (`status`),
KEY `updated` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表';
订单表:order
CREATE TABLE `order` (
`id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '订单id',
`total_num` int(11) DEFAULT NULL COMMENT '数量合计',
`moneys` int(11) DEFAULT NULL COMMENT '金额合计',
`pay_type` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '支付类型,1、在线支付、0 货到付款',
`create_time` datetime DEFAULT NULL COMMENT '订单创建时间',
`update_time` datetime DEFAULT NULL COMMENT '订单更新时间',
`pay_time` datetime DEFAULT NULL COMMENT '付款时间',
`consign_time` datetime DEFAULT NULL COMMENT '发货时间',
`end_time` datetime DEFAULT NULL COMMENT '交易完成时间',
`username` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '用户名称',
`recipients` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '收货人',
`recipients_mobile` varchar(12) COLLATE utf8_bin DEFAULT NULL COMMENT '收货人手机',
`recipients_address` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '收货人地址',
`weixin_transaction_id` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '交易流水号',
`order_status` int(1) COLLATE utf8_bin DEFAULT NULL COMMENT '订单状态,0:未完成,1:已完成,2:已退货',
`pay_status` int(1) COLLATE utf8_bin DEFAULT NULL COMMENT '支付状态,0:未支付,1:已支付,2:支付失败',
`is_delete` int(1) COLLATE utf8_bin DEFAULT NULL COMMENT '是否删除',
PRIMARY KEY (`id`),
KEY `create_time` (`create_time`),
KEY `status` (`order_status`),
KEY `payment_type` (`pay_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
订单明细表:order_sku
CREATE TABLE `order_sku` (
`id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT 'ID',
`category_one_id` int(11) DEFAULT NULL COMMENT '1级分类',
`category_two_id` int(11) DEFAULT NULL COMMENT '2级分类',
`category_three_id` int(11) DEFAULT NULL COMMENT '3级分类',
`spu_id` varchar(60) COLLATE utf8_bin DEFAULT NULL COMMENT 'SPU_ID',
`sku_id` varchar(60) COLLATE utf8_bin DEFAULT NULL COMMENT 'SKU_ID',
`order_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '订单ID',
`name` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '商品名称',
`price` int(20) DEFAULT NULL COMMENT '单价',
`num` int(10) DEFAULT NULL COMMENT '数量',
`money` int(20) DEFAULT NULL COMMENT '总金额',
`image` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '图片地址',
PRIMARY KEY (`id`),
KEY `item_id` (`sku_id`),
KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
秒杀商品表:seckill_goods
CREATE TABLE `seckill_goods` (
`id` varchar(60) NOT NULL,
`sup_id` varchar(60) DEFAULT NULL COMMENT 'spu ID',
`sku_id` varchar(60) DEFAULT NULL COMMENT 'sku ID',
`name` varchar(100) DEFAULT NULL COMMENT '标题',
`images` varchar(150) DEFAULT NULL COMMENT '商品图片',
`price` int(20) DEFAULT NULL COMMENT '原价格',
`seckill_price` double(20,0) DEFAULT NULL COMMENT '秒杀价格',
`create_time` datetime DEFAULT NULL COMMENT '添加日期',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`num` int(11) DEFAULT NULL COMMENT '秒杀商品数',
`store_count` int(11) DEFAULT NULL COMMENT '剩余库存数',
`content` varchar(2000) DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
秒杀订单表:seckill_order
CREATE TABLE `seckill_order` (
`id` varchar(60) NOT NULL COMMENT '主键',
`seckill_goods_id` varchar(60) DEFAULT NULL COMMENT '秒杀商品ID',
`money` int(10) DEFAULT NULL COMMENT '支付金额',
`username` varchar(50) DEFAULT NULL COMMENT '用户',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
`status` int(1) DEFAULT NULL COMMENT '状态,0未支付,1已支付',
`weixin_transaction_id` varchar(30) DEFAULT NULL COMMENT '交易流水',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
省份表:provinces
CREATE TABLE `provinces` (
`provinceid` varchar(20) NOT NULL COMMENT '省份ID',
`province` varchar(50) NOT NULL COMMENT '省份名称',
PRIMARY KEY (`provinceid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='省份信息表';
城市表:cities
CREATE TABLE `cities` (
`cityid` varchar(20) NOT NULL COMMENT '城市ID',
`city` varchar(50) NOT NULL COMMENT '城市名称',
`provinceid` varchar(20) NOT NULL COMMENT '省份ID',
PRIMARY KEY (`cityid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='行政区域地州市信息表';
区域表:areas
CREATE TABLE `areas` (
`areaid` varchar(20) NOT NULL COMMENT '区域ID',
`area` varchar(50) NOT NULL COMMENT '区域名称',
`cityid` varchar(20) NOT NULL COMMENT '城市ID',
PRIMARY KEY (`areaid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='行政区域县区信息表';
收件信息表:address
CREATE TABLE `address` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL COMMENT '用户名',
`provinceid` varchar(20) DEFAULT NULL COMMENT '省',
`cityid` varchar(20) DEFAULT NULL COMMENT '市',
`areaid` varchar(20) DEFAULT NULL COMMENT '县/区',
`phone` varchar(20) DEFAULT NULL COMMENT '电话',
`address` varchar(200) DEFAULT NULL COMMENT '详细地址',
`contact` varchar(50) DEFAULT NULL COMMENT '联系人',
`is_default` int(1) DEFAULT NULL COMMENT '是否是默认 1默认 0否',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8;
相关的脚本文件在云盘中,请自行下载
链接:https://pan.baidu.com/s/1trQJQ77t_hVNED1YNpa2EQ
提取码:0r4b
好了到此环境准备工作就搞定了~