| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- -- 校园闲置物品交易平台 DDL
- -- 数据库:campus_idle_item_trading_platform
- CREATE DATABASE IF NOT EXISTS campus_idle_item_trading_platform;
- USE campus_idle_item_trading_platform;
- -- 用户表
- CREATE TABLE IF NOT EXISTS `user` (
- `id` BIGINT NOT NULL AUTO_INCREMENT,
- `student_id` VARCHAR(20) NOT NULL,
- `name` VARCHAR(50) NOT NULL,
- `password_hash` VARCHAR(255) NOT NULL,
- `nickname` VARCHAR(50) DEFAULT NULL,
- `avatar_url` VARCHAR(255) DEFAULT NULL,
- `signature` VARCHAR(200) DEFAULT NULL,
- `campus_card_url` VARCHAR(255) DEFAULT NULL,
- `auth_status` VARCHAR(20) NOT NULL DEFAULT 'UNAUTHENTICATED',
- `status` VARCHAR(20) NOT NULL DEFAULT 'NORMAL',
- `role` VARCHAR(20) NOT NULL DEFAULT 'USER',
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_student_id` (`student_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- -- 分类表
- CREATE TABLE IF NOT EXISTS `category` (
- `id` BIGINT NOT NULL AUTO_INCREMENT,
- `name` VARCHAR(50) NOT NULL,
- `status` VARCHAR(20) NOT NULL DEFAULT 'ENABLED',
- `sort_order` INT NOT NULL DEFAULT 0,
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- -- 物品表
- CREATE TABLE IF NOT EXISTS `item` (
- `id` BIGINT NOT NULL AUTO_INCREMENT,
- `seller_id` BIGINT NOT NULL,
- `category_id` BIGINT DEFAULT NULL,
- `title` VARCHAR(100) NOT NULL,
- `description` TEXT,
- `price` DECIMAL(10,2) NOT NULL,
- `images` TEXT,
- `trade_method` VARCHAR(20) NOT NULL,
- `status` VARCHAR(20) NOT NULL DEFAULT 'PENDING',
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- KEY `idx_seller_id` (`seller_id`),
- KEY `idx_category_id` (`category_id`),
- KEY `idx_status` (`status`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- -- 订单表
- CREATE TABLE IF NOT EXISTS `order` (
- `id` BIGINT NOT NULL AUTO_INCREMENT,
- `item_id` BIGINT NOT NULL,
- `buyer_id` BIGINT NOT NULL,
- `seller_id` BIGINT NOT NULL,
- `trade_method` VARCHAR(20) NOT NULL,
- `status` VARCHAR(20) NOT NULL DEFAULT 'PENDING',
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- KEY `idx_item_id` (`item_id`),
- KEY `idx_buyer_id` (`buyer_id`),
- KEY `idx_seller_id` (`seller_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- -- 消息表
- CREATE TABLE IF NOT EXISTS `message` (
- `id` BIGINT NOT NULL AUTO_INCREMENT,
- `from_user_id` BIGINT NOT NULL,
- `to_user_id` BIGINT NOT NULL,
- `item_id` BIGINT DEFAULT NULL,
- `content` TEXT,
- `image_url` VARCHAR(255) DEFAULT NULL,
- `is_read` TINYINT(1) NOT NULL DEFAULT 0,
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- KEY `idx_from_user_id` (`from_user_id`),
- KEY `idx_to_user_id` (`to_user_id`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- -- 审核记录表
- CREATE TABLE IF NOT EXISTS `review` (
- `id` BIGINT NOT NULL AUTO_INCREMENT,
- `admin_id` BIGINT NOT NULL,
- `review_type` VARCHAR(20) NOT NULL,
- `target_id` BIGINT NOT NULL,
- `result` VARCHAR(20) NOT NULL,
- `reason` VARCHAR(255) DEFAULT NULL,
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- KEY `idx_review_type_target` (`review_type`, `target_id`),
- KEY `idx_admin_id` (`admin_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- -- 插入默认分类数据
- INSERT INTO `category` (`name`, `status`, `sort_order`) VALUES
- ('教材', 'ENABLED', 1),
- ('电子产品', 'ENABLED', 2),
- ('生活用品', 'ENABLED', 3),
- ('体育用品', 'ENABLED', 4),
- ('衣物', 'ENABLED', 5),
- ('其他', 'ENABLED', 6);
- -- 插入默认管理员(密码:admin,MD5加密)
- INSERT INTO `user` (`student_id`, `name`, `password_hash`, `nickname`, `role`, `auth_status`, `status`)
- VALUES ('admin', '管理员', 'e10adc3949ba59abbe56e057f20f883e', '管理员', 'ADMIN', 'AUTHENTICATED', 'NORMAL');
|