1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| CREATE TABLE tb_user ( user_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID', username VARCHAR(50) NOT NULL COMMENT '用户名', password VARCHAR(100) NOT NULL COMMENT '密码', phone VARCHAR(20) COMMENT '手机号', email VARCHAR(50) COMMENT '邮箱', avatar VARCHAR(200) COMMENT '头像URL', status TINYINT DEFAULT 1 COMMENT '状态:1正常 0禁用', create_time DATETIME DEFAULT NOW() COMMENT '注册时间', UNIQUE INDEX idx_username(username), UNIQUE INDEX idx_phone(phone), UNIQUE INDEX idx_email(email) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
CREATE TABLE tb_address ( address_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '地址ID', user_id BIGINT NOT NULL COMMENT '用户ID', receiver_name VARCHAR(20) COMMENT '收件人', receiver_phone VARCHAR(20) COMMENT '收件人手机', province VARCHAR(20) COMMENT '省', city VARCHAR(20) COMMENT '市', district VARCHAR(20) COMMENT '区', detail_address VARCHAR(200) COMMENT '详细地址', is_default TINYINT DEFAULT 0 COMMENT '是否默认:1是 0否', INDEX idx_user_id(user_id), FOREIGN KEY (user_id) REFERENCES tb_user(user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收货地址表';
CREATE TABLE tb_category ( category_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID', category_name VARCHAR(50) NOT NULL COMMENT '分类名称', parent_id INT DEFAULT 0 COMMENT '父分类ID:0为一级分类', sort_order INT DEFAULT 0 COMMENT '排序', INDEX idx_parent_id(parent_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表';
CREATE TABLE tb_product ( product_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '商品ID', category_id INT COMMENT '分类ID', product_name VARCHAR(100) NOT NULL COMMENT '商品名称', price DECIMAL(10,2) NOT NULL COMMENT '价格', stock INT DEFAULT 0 COMMENT '库存', description TEXT COMMENT '商品描述', main_image VARCHAR(200) COMMENT '主图', status TINYINT DEFAULT 1 COMMENT '状态:1上架 0下架', create_time DATETIME DEFAULT NOW() COMMENT '创建时间', INDEX idx_category_id(category_id), INDEX idx_status(status), FOREIGN KEY (category_id) REFERENCES tb_category(category_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
CREATE TABLE tb_cart ( 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 DEFAULT 1 COMMENT '数量', add_time DATETIME DEFAULT NOW() COMMENT '加入时间', UNIQUE INDEX idx_user_product(user_id, product_id), FOREIGN KEY (user_id) REFERENCES tb_user(user_id), FOREIGN KEY (product_id) REFERENCES tb_product(product_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表';
CREATE TABLE tb_order ( order_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '订单ID', user_id BIGINT NOT NULL COMMENT '用户ID', order_no VARCHAR(50) NOT NULL COMMENT '订单号', total_amount DECIMAL(10,2) COMMENT '总金额', status VARCHAR(20) DEFAULT '待支付' COMMENT '状态', receiver_name VARCHAR(20) COMMENT '收件人', receiver_phone VARCHAR(20) COMMENT '收件人手机', receiver_address VARCHAR(300) COMMENT '收货地址', create_time DATETIME DEFAULT NOW() COMMENT '下单时间', pay_time DATETIME COMMENT '支付时间', UNIQUE INDEX idx_order_no(order_no), INDEX idx_user_id(user_id), INDEX idx_status(status), FOREIGN KEY (user_id) REFERENCES tb_user(user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
CREATE TABLE tb_order_item ( 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) COMMENT '商品名称(快照)', product_image VARCHAR(200) COMMENT '商品图片(快照)', price DECIMAL(10,2) COMMENT '单价(快照)', quantity INT COMMENT '数量', total_price DECIMAL(10,2) COMMENT '小计', INDEX idx_order_id(order_id), FOREIGN KEY (order_id) REFERENCES tb_order(order_id), FOREIGN KEY (product_id) REFERENCES tb_product(product_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单详情表';
CREATE TABLE tb_review ( review_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '评论ID', user_id BIGINT NOT NULL COMMENT '用户ID', product_id BIGINT NOT NULL COMMENT '商品ID', order_id BIGINT COMMENT '订单ID', rating TINYINT COMMENT '评分:1-5', content TEXT COMMENT '评论内容', images VARCHAR(500) COMMENT '评论图片', create_time DATETIME DEFAULT NOW() COMMENT '评论时间', INDEX idx_product_id(product_id), INDEX idx_user_id(user_id), FOREIGN KEY (user_id) REFERENCES tb_user(user_id), FOREIGN KEY (product_id) REFERENCES tb_product(product_id), FOREIGN KEY (order_id) REFERENCES tb_order(order_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='评论表';
|