-- 创建数据库 CREATE DATABASE IF NOT EXISTS jiebanke CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE jiebanke; -- 创建管理员表 CREATE TABLE IF NOT EXISTS admins ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, email VARCHAR(100), role VARCHAR(20) DEFAULT 'admin', status VARCHAR(20) DEFAULT 'active', last_login TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 创建用户表 CREATE TABLE IF NOT EXISTS users ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, email VARCHAR(100) UNIQUE, phone VARCHAR(20), real_name VARCHAR(100), id_card VARCHAR(20), status VARCHAR(20) DEFAULT 'active', balance DECIMAL(15,2) DEFAULT 0.00, credit_score INT DEFAULT 100, last_login TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 创建订单表 CREATE TABLE IF NOT EXISTS orders ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, order_no VARCHAR(50) NOT NULL UNIQUE, amount DECIMAL(15,2) NOT NULL, status VARCHAR(20) DEFAULT 'pending', type VARCHAR(20) NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 创建旅行计划表 CREATE TABLE IF NOT EXISTS travel_plans ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, destination VARCHAR(100) NOT NULL, start_date DATE NOT NULL, end_date DATE NOT NULL, budget DECIMAL(10,2), interests TEXT, description TEXT, visibility VARCHAR(20) DEFAULT 'public', status VARCHAR(20) DEFAULT 'active', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 创建动物表 CREATE TABLE IF NOT EXISTS animals ( id BIGINT AUTO_INCREMENT PRIMARY KEY, merchant_id BIGINT NOT NULL, name VARCHAR(50) NOT NULL, species VARCHAR(50) NOT NULL, breed VARCHAR(50), birth_date DATE, personality TEXT, farm_location VARCHAR(255), price DECIMAL(10,2) NOT NULL, claim_count INT DEFAULT 0, status VARCHAR(20) DEFAULT 'available', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 创建推广活动表 CREATE TABLE IF NOT EXISTS promotion_activities ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, description TEXT, reward_type VARCHAR(20), reward_amount DECIMAL(10,2), status VARCHAR(20) DEFAULT 'active', start_time TIMESTAMP, end_time TIMESTAMP, max_participants INT, current_participants INT DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); -- 创建奖励记录表 CREATE TABLE IF NOT EXISTS reward_records ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT, user_name VARCHAR(50), user_phone VARCHAR(20), activity_id BIGINT, activity_name VARCHAR(100), reward_type VARCHAR(20), reward_amount DECIMAL(10,2), status VARCHAR(20) DEFAULT 'pending', issued_at TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 插入默认管理员账号 INSERT INTO admins (username, password, email, role) VALUES ('admin', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin@jiebanke.com', 'super_admin'), ('manager', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'manager@jiebanke.com', 'admin'); -- 插入测试用户账号 INSERT INTO users (username, password, email, phone, real_name, id_card, balance, credit_score) VALUES ('user1', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user1@jiebanke.com', '13800138001', '张三', '110101199001011234', 1000.00, 95), ('user2', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user2@jiebanke.com', '13800138002', '李四', '110101199002022345', 500.00, 85); -- 创建索引 CREATE INDEX idx_admins_username ON admins(username); CREATE INDEX idx_admins_email ON admins(email); CREATE INDEX idx_users_username ON users(username); CREATE INDEX idx_users_email ON users(email); CREATE INDEX idx_users_phone ON users(phone); CREATE INDEX idx_orders_user_id ON orders(user_id); CREATE INDEX idx_orders_order_no ON orders(order_no); CREATE INDEX idx_orders_status ON orders(status); CREATE INDEX idx_travel_plans_user_id ON travel_plans(user_id); CREATE INDEX idx_travel_plans_destination ON travel_plans(destination); CREATE INDEX idx_animals_species ON animals(species); CREATE INDEX idx_animals_status ON animals(status); CREATE INDEX idx_promotion_activities_status ON promotion_activities(status); CREATE INDEX idx_reward_records_user_id ON reward_records(user_id); CREATE INDEX idx_reward_records_activity_id ON reward_records(activity_id);