CREATE TABLE user (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(20) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE user_wallet (
wallet_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
balance DECIMAL(10, 2) NOT NULL DEFAULT 0.00,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES user(user_id) ON DELETE CASCADE
);
CREATE TABLE user_wallet_log (
log_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
transaction_type VARCHAR(50) NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
transaction_time TIMESTAMP NOT NULL,
FOREIGN KEY (user_id) REFERENCES user(user_id) ON DELETE CASCADE
);
CREATE TABLE product_type (
type_id INT AUTO_INCREMENT PRIMARY KEY,
type_name VARCHAR(100) NOT NULL,
parent_id INT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE product (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL DEFAULT 0.00,
stock INT NOT NULL DEFAULT 0,
type_id INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (type_id) REFERENCES product_type(type_id) ON DELETE RESTRICT
);
CREATE TABLE `order` (
`order_id` INT AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`order_status` VARCHAR(50) NOT NULL DEFAULT '待支付',
`order_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`payment_status` VARCHAR(50) NOT NULL DEFAULT '未支付',
`payment_time` TIMESTAMP NULL,
`total_price` DECIMAL(10, 2) NOT NULL DEFAULT 0.00,
FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`) ON DELETE RESTRICT
);
CREATE TABLE order_info (
order_info_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
unit_price DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (order_id) REFERENCES `order`(order_id) ON DELETE CASCADE,
FOREIGN KEY (product_id) REFERENCES product(product_id) ON DELETE RESTRICT
);
实训1 七张表
最新推荐文章于 2024-09-30 09:09:52 发布