136 lines
6.6 KiB
SQL
136 lines
6.6 KiB
SQL
-- 创建数据库
|
||
CREATE DATABASE IF NOT EXISTS meiruo_cosmetics DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
USE meiruo_cosmetics;
|
||
|
||
-- 用户表
|
||
CREATE TABLE IF NOT EXISTS `user` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
|
||
`username` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
|
||
`password` VARCHAR(100) NOT NULL COMMENT '密码',
|
||
`nickname` VARCHAR(50) COMMENT '昵称',
|
||
`phone` VARCHAR(20) COMMENT '手机号',
|
||
`email` VARCHAR(100) COMMENT '邮箱',
|
||
`avatar` VARCHAR(255) COMMENT '头像',
|
||
`role` TINYINT DEFAULT 0 COMMENT '角色:0-普通用户,1-管理员',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-正常',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_username (`username`),
|
||
INDEX idx_phone (`phone`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
|
||
|
||
-- 分类表
|
||
CREATE TABLE IF NOT EXISTS `category` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
|
||
`name` VARCHAR(50) NOT NULL COMMENT '分类名称',
|
||
`description` VARCHAR(255) COMMENT '分类描述',
|
||
`sort` INT DEFAULT 0 COMMENT '排序',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-正常',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
INDEX idx_status (`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表';
|
||
|
||
-- 商品表
|
||
CREATE TABLE IF NOT EXISTS `product` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '商品ID',
|
||
`name` VARCHAR(100) NOT NULL COMMENT '商品名称',
|
||
`description` TEXT COMMENT '商品描述',
|
||
`price` DECIMAL(10,2) NOT NULL COMMENT '价格',
|
||
`stock` INT DEFAULT 0 COMMENT '库存',
|
||
`category_id` BIGINT COMMENT '分类ID',
|
||
`image` VARCHAR(255) COMMENT '主图',
|
||
`images` TEXT COMMENT '图片列表',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:0-下架,1-正常',
|
||
`sales` INT DEFAULT 0 COMMENT '销量',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_category (`category_id`),
|
||
INDEX idx_status (`status`),
|
||
INDEX idx_sales (`sales`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
|
||
|
||
-- 购物车表
|
||
CREATE TABLE IF NOT EXISTS `cart` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '购物车ID',
|
||
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
`product_id` BIGINT NOT NULL COMMENT '商品ID',
|
||
`quantity` INT NOT NULL DEFAULT 1 COMMENT '数量',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_user_product (`user_id`, `product_id`),
|
||
INDEX idx_user (`user_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表';
|
||
|
||
-- 订单表
|
||
CREATE TABLE IF NOT EXISTS `order` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '订单ID',
|
||
`order_no` VARCHAR(32) NOT NULL UNIQUE COMMENT '订单号',
|
||
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||
`total_amount` DECIMAL(10,2) NOT NULL COMMENT '总金额',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:1-待付款,2-已付款,3-已发货,4-已完成,5-已取消',
|
||
`receiver_name` VARCHAR(50) COMMENT '收货人姓名',
|
||
`receiver_phone` VARCHAR(20) COMMENT '收货人电话',
|
||
`receiver_address` VARCHAR(255) COMMENT '收货地址',
|
||
`remark` VARCHAR(255) COMMENT '备注',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`pay_time` DATETIME COMMENT '付款时间',
|
||
`ship_time` DATETIME COMMENT '发货时间',
|
||
`receive_time` DATETIME COMMENT '收货时间',
|
||
INDEX idx_user (`user_id`),
|
||
INDEX idx_order_no (`order_no`),
|
||
INDEX idx_status (`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
|
||
|
||
-- 订单项表
|
||
CREATE TABLE IF NOT EXISTS `order_item` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '订单项ID',
|
||
`order_id` BIGINT NOT NULL COMMENT '订单ID',
|
||
`product_id` BIGINT NOT NULL COMMENT '商品ID',
|
||
`product_name` VARCHAR(100) NOT NULL COMMENT '商品名称',
|
||
`product_image` VARCHAR(255) COMMENT '商品图片',
|
||
`price` DECIMAL(10,2) NOT NULL COMMENT '商品价格',
|
||
`quantity` INT NOT NULL COMMENT '数量',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
INDEX idx_order (`order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单项表';
|
||
|
||
-- 轮播图表
|
||
CREATE TABLE IF NOT EXISTS `banner` (
|
||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '轮播图ID',
|
||
`title` VARCHAR(50) COMMENT '标题',
|
||
`image` VARCHAR(255) NOT NULL COMMENT '图片地址',
|
||
`link` VARCHAR(255) COMMENT '链接地址',
|
||
`sort` INT DEFAULT 0 COMMENT '排序',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-正常',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
INDEX idx_status (`status`),
|
||
INDEX idx_sort (`sort`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='轮播图表';
|
||
|
||
-- 插入默认管理员账号
|
||
INSERT INTO `user` (`username`, `password`, `nickname`, `role`, `status`) VALUES
|
||
('admin', 'e10adc3949ba59abbe56e057f20f883e', '管理员', 1, 1);
|
||
|
||
-- 插入默认分类
|
||
INSERT INTO `category` (`name`, `description`, `sort`) VALUES
|
||
('面部彩妆', '粉底液、遮瑕膏、粉饼等', 1),
|
||
('眼妆', '眼影、眼线、睫毛膏等', 2),
|
||
('唇妆', '口红、唇釉、唇彩等', 3),
|
||
('腮红', '腮红、修容等', 4),
|
||
('卸妆', '卸妆油、卸妆水等', 5);
|
||
|
||
-- 插入示例商品
|
||
INSERT INTO `product` (`name`, `description`, `price`, `stock`, `category_id`, `image`, `status`, `sales`) VALUES
|
||
('水润粉底液', '轻薄水润,遮瑕保湿,打造自然裸妆感', 168.00, 100, 1, '/images/product1.jpg', 1, 50),
|
||
('大地色眼影盘', '12色日常大地色眼影盘,珠光哑光搭配', 128.00, 80, 2, '/images/product2.jpg', 1, 30),
|
||
('哑光正红色口红', '经典正红色,哑光质地,持久显色', 89.00, 200, 3, '/images/product3.jpg', 1, 100),
|
||
('腮红', '柔美腮红,轻薄自然,打造好气色', 68.00, 150, 4, '/images/product4.jpg', 1, 25),
|
||
('卸妆油', '温和卸妆油,深层清洁不紧绷', 98.00, 120, 5, '/images/product5.jpg', 1, 40);
|
||
|
||
-- 插入示例轮播图
|
||
INSERT INTO `banner` (`title`, `image`, `link`, `sort`) VALUES
|
||
('新品上市', '/images/banner1.jpg', '/product/1', 1),
|
||
('限时优惠', '/images/banner2.jpg', '/product/2', 2),
|
||
('热销推荐', '/images/banner3.jpg', '/product/3', 3);
|