chore: 更新数据库脚本适配新增模块
- 更新 schema.sql 添加用户地址、收藏、评价、订单项表结构 - 更新测试数据和演示用户脚本
This commit is contained in:
@@ -15,6 +15,8 @@ CREATE TABLE IF NOT EXISTS users
|
||||
password VARCHAR(255) NOT NULL COMMENT '密码(加密)',
|
||||
email VARCHAR(100) COMMENT '邮箱',
|
||||
phone VARCHAR(20) COMMENT '手机号',
|
||||
avatar VARCHAR(500) COMMENT '头像',
|
||||
role VARCHAR(20) DEFAULT 'USER' COMMENT '角色:ADMIN/USER',
|
||||
status TINYINT DEFAULT 1 COMMENT '状态:1-正常,0-禁用',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
@@ -37,6 +39,7 @@ CREATE TABLE IF NOT EXISTS products
|
||||
name VARCHAR(200) NOT NULL COMMENT '商品名称',
|
||||
description TEXT COMMENT '商品描述',
|
||||
price DECIMAL(10, 2) NOT NULL COMMENT '商品价格',
|
||||
category VARCHAR(100) COMMENT '商品分类',
|
||||
stock INT NOT NULL DEFAULT 0 COMMENT '库存数量',
|
||||
image_url VARCHAR(500) COMMENT '商品图片URL',
|
||||
status TINYINT DEFAULT 1 COMMENT '状态:1-上架,0-下架',
|
||||
@@ -82,15 +85,25 @@ CREATE TABLE IF NOT EXISTS flash_sales
|
||||
-- ================================
|
||||
CREATE TABLE IF NOT EXISTS orders
|
||||
(
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单ID',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单ID',
|
||||
order_no VARCHAR(64) NOT NULL UNIQUE COMMENT '订单号',
|
||||
group_no VARCHAR(64) COMMENT '聚合订单号',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
product_id BIGINT NOT NULL COMMENT '商品ID',
|
||||
quantity INT NOT NULL DEFAULT 1 COMMENT '购买数量',
|
||||
total_price DECIMAL(10, 2) NOT NULL COMMENT '总价',
|
||||
status TINYINT DEFAULT 1 COMMENT '状态:1-待支付,2-已支付,3-已发货,4-已完成,5-已取消',
|
||||
order_type TINYINT DEFAULT 1 COMMENT '订单类型:1-普通订单,2-秒杀订单',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
status TINYINT DEFAULT 1 COMMENT '状态:1-待支付,2-已支付,3-已发货,4-已完成,5-已取消',
|
||||
order_type TINYINT DEFAULT 1 COMMENT '订单类型:1-普通订单,2-秒杀订单',
|
||||
receiver_name VARCHAR(100) COMMENT '收货人',
|
||||
receiver_phone VARCHAR(20) COMMENT '收货手机号',
|
||||
receiver_address VARCHAR(255) COMMENT '收货地址',
|
||||
remark VARCHAR(255) COMMENT '订单备注',
|
||||
payment_method VARCHAR(50) COMMENT '支付方式',
|
||||
paid_at TIMESTAMP NULL COMMENT '支付时间',
|
||||
shipped_at TIMESTAMP NULL COMMENT '发货时间',
|
||||
completed_at TIMESTAMP NULL COMMENT '完成时间',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
|
||||
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE,
|
||||
@@ -104,8 +117,107 @@ CREATE TABLE IF NOT EXISTS orders
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci COMMENT ='订单表';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- ================================
|
||||
-- 5. 创建视图(可选)
|
||||
-- 5. 订单明细表
|
||||
-- ================================
|
||||
CREATE TABLE IF NOT EXISTS order_items
|
||||
(
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '明细ID',
|
||||
order_id BIGINT NOT NULL COMMENT '主订单ID',
|
||||
product_id BIGINT NOT NULL COMMENT '商品ID',
|
||||
product_name VARCHAR(200) NOT NULL COMMENT '商品名称快照',
|
||||
product_image_url VARCHAR(500) COMMENT '商品图片快照',
|
||||
price DECIMAL(10, 2) NOT NULL COMMENT '下单单价',
|
||||
quantity INT NOT NULL COMMENT '购买数量',
|
||||
subtotal DECIMAL(10, 2) NOT NULL COMMENT '小计',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
|
||||
FOREIGN KEY (order_id) REFERENCES orders (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE,
|
||||
INDEX idx_order_items_order_id (order_id),
|
||||
INDEX idx_order_items_product_id (product_id)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci COMMENT ='订单明细表';
|
||||
|
||||
-- ================================
|
||||
-- 6. 用户地址表
|
||||
-- ================================
|
||||
CREATE TABLE IF NOT EXISTS user_addresses
|
||||
(
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '地址ID',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
name VARCHAR(100) NOT NULL COMMENT '收货人',
|
||||
phone VARCHAR(20) NOT NULL COMMENT '手机号',
|
||||
province VARCHAR(50) COMMENT '省份',
|
||||
city VARCHAR(50) COMMENT '城市',
|
||||
district VARCHAR(50) COMMENT '区县',
|
||||
address VARCHAR(255) NOT NULL COMMENT '详细地址',
|
||||
is_default TINYINT DEFAULT 0 COMMENT '是否默认地址',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
|
||||
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
|
||||
INDEX idx_address_user_id (user_id),
|
||||
INDEX idx_address_default (is_default)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci COMMENT ='用户地址表';
|
||||
|
||||
-- ================================
|
||||
-- 7. 商品评价表
|
||||
-- ================================
|
||||
CREATE TABLE IF NOT EXISTS product_reviews
|
||||
(
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '评价ID',
|
||||
product_id BIGINT NOT NULL COMMENT '商品ID',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
order_id BIGINT NOT NULL COMMENT '订单ID',
|
||||
rating TINYINT NOT NULL DEFAULT 5 COMMENT '评分',
|
||||
content TEXT NOT NULL COMMENT '评价内容',
|
||||
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1-显示,0-隐藏',
|
||||
admin_reply TEXT COMMENT '管理员回复',
|
||||
replied_at TIMESTAMP NULL COMMENT '回复时间',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
|
||||
FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (order_id) REFERENCES orders (id) ON DELETE CASCADE,
|
||||
INDEX idx_review_product_id (product_id),
|
||||
INDEX idx_review_user_id (user_id),
|
||||
UNIQUE KEY uk_review_order_user (order_id, user_id)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci COMMENT ='商品评价表';
|
||||
|
||||
|
||||
|
||||
-- ================================
|
||||
-- 8. 用户收藏表
|
||||
-- ================================
|
||||
CREATE TABLE IF NOT EXISTS user_favorites
|
||||
(
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '收藏ID',
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
product_id BIGINT NOT NULL COMMENT '商品ID',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
|
||||
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE,
|
||||
UNIQUE KEY uk_favorite_user_product (user_id, product_id),
|
||||
INDEX idx_favorite_user_id (user_id),
|
||||
INDEX idx_favorite_product_id (product_id)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci COMMENT ='用户收藏表';
|
||||
|
||||
-- ================================
|
||||
-- 9. 创建视图(可选)
|
||||
-- ================================
|
||||
|
||||
-- 活跃秒杀活动视图
|
||||
|
||||
Reference in New Issue
Block a user