-- 创建数据库 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);