| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- -- 创建数据库表结构
- -- 用户表
- CREATE TABLE IF NOT EXISTS users (
- id INT AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- email VARCHAR(100) NOT NULL UNIQUE,
- password VARCHAR(255) NOT NULL,
- first_name VARCHAR(50),
- last_name VARCHAR(50),
- avatar VARCHAR(255),
- phone VARCHAR(20),
- address VARCHAR(255),
- is_active BOOLEAN DEFAULT TRUE,
- role VARCHAR(20) DEFAULT 'user',
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted_at TIMESTAMP NULL,
- INDEX idx_username (username),
- INDEX idx_email (email),
- INDEX idx_deleted_at (deleted_at)
- );
- -- 商品分类表
- CREATE TABLE IF NOT EXISTS categories (
- id INT AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(100) NOT NULL,
- description TEXT,
- parent_id INT,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (parent_id) REFERENCES categories(id) ON DELETE SET NULL,
- INDEX idx_parent_id (parent_id)
- );
- -- 商品表
- CREATE TABLE IF NOT EXISTS products (
- id INT AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(255) NOT NULL,
- description TEXT,
- price DECIMAL(10, 2) NOT NULL,
- stock INT DEFAULT 0,
- category_id INT,
- image VARCHAR(255),
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL,
- INDEX idx_category_id (category_id),
- INDEX idx_name (name),
- INDEX idx_price (price)
- );
- -- 购物车表
- CREATE TABLE IF NOT EXISTS carts (
- id INT AUTO_INCREMENT PRIMARY KEY,
- user_id INT NOT NULL,
- product_id INT NOT NULL,
- quantity INT NOT NULL DEFAULT 1,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
- FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE,
- UNIQUE KEY unique_user_product (user_id, product_id),
- INDEX idx_user_id (user_id),
- INDEX idx_product_id (product_id)
- );
- -- 订单表
- CREATE TABLE IF NOT EXISTS orders (
- id INT AUTO_INCREMENT PRIMARY KEY,
- user_id INT NOT NULL,
- order_number VARCHAR(50) NOT NULL UNIQUE,
- total_amount DECIMAL(10, 2) NOT NULL,
- status VARCHAR(20) DEFAULT 'pending',
- shipping_address TEXT,
- payment_method VARCHAR(50),
- payment_status VARCHAR(20) DEFAULT 'pending',
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
- INDEX idx_user_id (user_id),
- INDEX idx_order_number (order_number),
- INDEX idx_status (status)
- );
- -- 订单项表
- CREATE TABLE IF NOT EXISTS order_items (
- id INT AUTO_INCREMENT PRIMARY KEY,
- order_id INT NOT NULL,
- product_id INT NOT NULL,
- quantity INT NOT NULL,
- price DECIMAL(10, 2) NOT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
- FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE,
- INDEX idx_order_id (order_id),
- INDEX idx_product_id (product_id)
- );
- -- 插入初始数据
- -- 插入默认管理员用户
- INSERT INTO users (username, email, password, first_name, last_name, role) VALUES
- ('admin', '[email protected]', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'Admin', 'User', 'admin');
- -- 插入商品分类
- INSERT INTO categories (name, description) VALUES
- ('电子产品', '各类电子设备和配件'),
- ('服装', '男女服装和配饰'),
- ('家居', '家居用品和装饰'),
- ('图书', '各类图书和教材'),
- ('运动', '运动器材和服装');
- -- 插入示例商品
- INSERT INTO products (name, description, price, stock, category_id) VALUES
- ('智能手机', '最新款智能手机,配备高清摄像头和长续航电池', 2999.00, 100, 1),
- ('笔记本电脑', '轻薄便携,高性能处理器,适合办公和娱乐', 5999.00, 50, 1),
- ('运动T恤', '透气舒适,适合各种运动场景', 99.00, 200, 2),
- ('牛仔裤', '经典款式,舒适耐穿', 199.00, 150, 2),
- ('沙发', '现代简约风格,舒适耐用', 2999.00, 20, 3),
- ('台灯', 'LED护眼台灯,多档调节', 199.00, 100, 3),
- ('编程入门', '适合初学者的编程入门书籍', 59.00, 500, 4),
- ('瑜伽垫', '防滑瑜伽垫,厚度适中', 99.00, 300, 5);
|