优化数据库

This commit is contained in:
yml
2026-06-02 20:37:00 +08:00
parent 5cb2f33872
commit af754bb594
9 changed files with 206 additions and 185 deletions
+146 -23
View File
@@ -1,6 +1,6 @@
-- ============================================
-- 数据库初始化脚本
-- 包含所有表结构定义
-- 包含所有表结构和基础数据
-- ============================================
SET NAMES utf8mb4;
@@ -10,7 +10,7 @@ SET FOREIGN_KEY_CHECKS = 0;
-- 用户相关表
-- -------------------------------------------
CREATE TABLE users (
CREATE TABLE IF NOT EXISTS users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
phone VARCHAR(32) NOT NULL,
nickname VARCHAR(64) NOT NULL DEFAULT '',
@@ -25,7 +25,7 @@ CREATE TABLE users (
UNIQUE KEY uk_users_phone (phone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE user_realname (
CREATE TABLE IF NOT EXISTS user_realname (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
provider VARCHAR(32) NOT NULL,
@@ -45,7 +45,7 @@ CREATE TABLE user_realname (
-- 游戏账号和商品表
-- -------------------------------------------
CREATE TABLE game_accounts (
CREATE TABLE IF NOT EXISTS game_accounts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
owner_id BIGINT UNSIGNED NOT NULL,
game_name VARCHAR(64) NOT NULL DEFAULT 'delta_force',
@@ -65,7 +65,7 @@ CREATE TABLE game_accounts (
KEY idx_game_accounts_filter (game_name, server_region, login_platform)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE rental_listings (
CREATE TABLE IF NOT EXISTS rental_listings (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
account_id BIGINT UNSIGNED NOT NULL,
owner_id BIGINT UNSIGNED NOT NULL,
@@ -87,7 +87,7 @@ CREATE TABLE rental_listings (
-- 订单相关表
-- -------------------------------------------
CREATE TABLE rental_orders (
CREATE TABLE IF NOT EXISTS rental_orders (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(64) NOT NULL,
listing_id BIGINT UNSIGNED NOT NULL,
@@ -115,7 +115,7 @@ CREATE TABLE rental_orders (
KEY idx_rental_orders_rented_at (status, rented_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE order_checkouts (
CREATE TABLE IF NOT EXISTS order_checkouts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
initiated_by BIGINT UNSIGNED NOT NULL,
@@ -142,7 +142,7 @@ CREATE TABLE order_checkouts (
KEY idx_order_checkouts_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE handoff_records (
CREATE TABLE IF NOT EXISTS handoff_records (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
from_user_id BIGINT UNSIGNED NOT NULL,
@@ -160,7 +160,7 @@ CREATE TABLE handoff_records (
-- 钱包相关表
-- -------------------------------------------
CREATE TABLE wallet_accounts (
CREATE TABLE IF NOT EXISTS wallet_accounts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
available_balance DECIMAL(12,2) NOT NULL DEFAULT 0.00,
@@ -171,7 +171,7 @@ CREATE TABLE wallet_accounts (
UNIQUE KEY uk_wallet_accounts_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE wallet_ledger (
CREATE TABLE IF NOT EXISTS wallet_ledger (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
ledger_no VARCHAR(64) NOT NULL,
user_id BIGINT UNSIGNED NOT NULL,
@@ -194,7 +194,7 @@ CREATE TABLE wallet_ledger (
-- 纠纷和通知表
-- -------------------------------------------
CREATE TABLE disputes (
CREATE TABLE IF NOT EXISTS disputes (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
initiator_id BIGINT UNSIGNED NOT NULL,
@@ -213,7 +213,7 @@ CREATE TABLE disputes (
KEY idx_disputes_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE notifications (
CREATE TABLE IF NOT EXISTS notifications (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
type VARCHAR(32) NOT NULL,
@@ -226,7 +226,7 @@ CREATE TABLE notifications (
KEY idx_notifications_user_read_created (user_id, read_at, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE audit_logs (
CREATE TABLE IF NOT EXISTS audit_logs (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
actor_type VARCHAR(32) NOT NULL,
actor_id BIGINT UNSIGNED NOT NULL,
@@ -245,7 +245,7 @@ CREATE TABLE audit_logs (
-- 管理员和权限表
-- -------------------------------------------
CREATE TABLE admin_users (
CREATE TABLE IF NOT EXISTS admin_users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
password_hash VARCHAR(255) NOT NULL,
@@ -257,7 +257,7 @@ CREATE TABLE admin_users (
UNIQUE KEY uk_admin_users_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE roles (
CREATE TABLE IF NOT EXISTS roles (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
code VARCHAR(64) NOT NULL,
name VARCHAR(64) NOT NULL,
@@ -267,7 +267,7 @@ CREATE TABLE roles (
UNIQUE KEY uk_roles_code (code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE permissions (
CREATE TABLE IF NOT EXISTS permissions (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
code VARCHAR(128) NOT NULL,
name VARCHAR(64) NOT NULL,
@@ -278,7 +278,7 @@ CREATE TABLE permissions (
UNIQUE KEY uk_permissions_code (code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE admin_user_roles (
CREATE TABLE IF NOT EXISTS admin_user_roles (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
admin_user_id BIGINT UNSIGNED NOT NULL,
role_id BIGINT UNSIGNED NOT NULL,
@@ -286,7 +286,7 @@ CREATE TABLE admin_user_roles (
UNIQUE KEY uk_admin_user_roles_user_role (admin_user_id, role_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE role_permissions (
CREATE TABLE IF NOT EXISTS role_permissions (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
role_id BIGINT UNSIGNED NOT NULL,
permission_id BIGINT UNSIGNED NOT NULL,
@@ -298,7 +298,7 @@ CREATE TABLE role_permissions (
-- 系统配置表
-- -------------------------------------------
CREATE TABLE system_configs (
CREATE TABLE IF NOT EXISTS system_configs (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(128) NOT NULL,
`value` TEXT NOT NULL,
@@ -313,7 +313,7 @@ CREATE TABLE system_configs (
-- 客服聊天表
-- -------------------------------------------
CREATE TABLE chat_conversations (
CREATE TABLE IF NOT EXISTS chat_conversations (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT UNSIGNED NULL,
type VARCHAR(32) NOT NULL DEFAULT 'order_group',
@@ -328,7 +328,7 @@ CREATE TABLE chat_conversations (
KEY idx_chat_conversations_last_message_at (last_message_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE chat_participants (
CREATE TABLE IF NOT EXISTS chat_participants (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
conversation_id BIGINT UNSIGNED NOT NULL,
participant_type VARCHAR(16) NOT NULL,
@@ -344,7 +344,7 @@ CREATE TABLE chat_participants (
KEY idx_chat_participants_conversation (conversation_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE chat_messages (
CREATE TABLE IF NOT EXISTS chat_messages (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
conversation_id BIGINT UNSIGNED NOT NULL,
sender_type VARCHAR(16) NOT NULL,
@@ -358,7 +358,7 @@ CREATE TABLE chat_messages (
KEY idx_chat_messages_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE chat_quick_replies (
CREATE TABLE IF NOT EXISTS chat_quick_replies (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
admin_user_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '0=全局, >0=个人',
title VARCHAR(64) NOT NULL COMMENT '快捷回复标题',
@@ -369,4 +369,127 @@ CREATE TABLE chat_quick_replies (
INDEX idx_admin_user_id (admin_user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷回复模板';
-- -------------------------------------------
-- 开放上传记录
-- -------------------------------------------
CREATE TABLE IF NOT EXISTS listing_uploads (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
uploader_name VARCHAR(64) NOT NULL,
matched_admin_id BIGINT UNSIGNED NULL,
owner_id BIGINT UNSIGNED NULL,
client_upload_time DATETIME NULL,
client_ip VARCHAR(64) NOT NULL DEFAULT '',
raw_payload JSON NULL,
parsed_payload JSON NULL,
listing_id BIGINT UNSIGNED NULL,
status VARCHAR(32) NOT NULL DEFAULT 'draft_created',
error_message VARCHAR(255) NOT NULL DEFAULT '',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY idx_listing_uploads_uploader_name (uploader_name),
KEY idx_listing_uploads_matched_admin_id (matched_admin_id),
KEY idx_listing_uploads_owner_id (owner_id),
KEY idx_listing_uploads_listing_id (listing_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
SET FOREIGN_KEY_CHECKS = 1;
-- -------------------------------------------
-- 权限数据
-- -------------------------------------------
INSERT INTO permissions (code, name, resource, action) VALUES
('dashboard:view', '查看仪表盘', 'dashboard', 'view'),
('user:view', '查看用户', 'user', 'view'),
('user:freeze', '冻结用户', 'user', 'freeze'),
('user:unfreeze', '解冻用户', 'user', 'unfreeze'),
('order:view', '查看订单', 'order', 'view'),
('order:close', '关闭订单', 'order', 'close'),
('order:mark_abnormal', '标记异常订单', 'order', 'mark_abnormal'),
('listing:view', '查看商品', 'listing', 'view'),
('listing:approve', '审核通过商品', 'listing', 'approve'),
('listing:reject', '审核拒绝商品', 'listing', 'reject'),
('listing:offline', '下架商品', 'listing', 'offline'),
('dispute:view', '查看纠纷', 'dispute', 'view'),
('dispute:arbitrate', '仲裁纠纷', 'dispute', 'arbitrate'),
('chat:view', '查看客服群聊', 'chat', 'view'),
('chat:send', '发送客服消息', 'chat', 'send'),
('wallet:view', '查看资金流水', 'wallet', 'view'),
('admin_user:manage', '管理员管理', 'admin_user', 'manage'),
('role:manage', '角色管理', 'role', 'manage'),
('system_config:view', '查看系统配置', 'system_config', 'view'),
('system_config:update', '修改系统配置', 'system_config', 'update'),
('audit_log:view', '查看审计日志', 'audit_log', 'view')
ON DUPLICATE KEY UPDATE
name = VALUES(name),
resource = VALUES(resource),
action = VALUES(action);
-- -------------------------------------------
-- 角色数据
-- -------------------------------------------
INSERT INTO roles (code, name, description) VALUES
('super_admin', '超级管理员', '拥有所有权限,不可被删除'),
('cs', '客服', '处理用户咨询、群聊、纠纷仲裁'),
('ops', '运营', '管理商品审核、订单管理、用户管理'),
('finance', '财务', '查看资金流水、订单信息')
ON DUPLICATE KEY UPDATE
name = VALUES(name),
description = VALUES(description);
-- super_admin 拥有所有权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r CROSS JOIN permissions p WHERE r.code = 'super_admin';
-- cs 角色权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'cs' AND p.code IN ('dashboard:view', 'user:view', 'dispute:view', 'dispute:arbitrate', 'chat:view', 'chat:send', 'order:view');
-- ops 角色权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'ops' AND p.code IN ('dashboard:view', 'user:view', 'user:freeze', 'user:unfreeze', 'order:view', 'order:close', 'order:mark_abnormal', 'listing:view', 'listing:approve', 'listing:reject', 'listing:offline', 'dispute:view', 'audit_log:view');
-- finance 角色权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'finance' AND p.code IN ('dashboard:view', 'wallet:view', 'order:view');
-- -------------------------------------------
-- 管理员账号
-- -------------------------------------------
-- 生成 admin 密码 hash: admin123456
INSERT INTO admin_users (username, password_hash, nickname, status) VALUES
('admin', '$2a$10$vvDd.cYJCOBl9kr5jdRYXu9C/7GXcHmXsG17zJPHzPOZ0XGbqcWNS', '超级管理员', 'active'),
('kf1', '$2a$10$7cx3B4IWunLZO24o11YVGu4qY1J1naDdsTyvoCpcnOO.GV15qaf3C', '客服1', 'active'),
('kf2', '$2a$10$m6kLCXciFygpqIGUZ9LQtuEFAl40hb.S7zJmMiuC83WrU7OQM3TPC', '客服2', 'active')
ON DUPLICATE KEY UPDATE
nickname = VALUES(nickname),
status = VALUES(status);
-- admin 关联 super_admin 角色
INSERT IGNORE INTO admin_user_roles (admin_user_id, role_id)
SELECT au.id, r.id FROM admin_users au, roles r
WHERE au.username = 'admin' AND r.code = 'super_admin';
-- 客服关联 cs 角色
INSERT IGNORE INTO admin_user_roles (admin_user_id, role_id)
SELECT au.id, r.id FROM admin_users au, roles r
WHERE au.username IN ('kf1', 'kf2') AND r.code = 'cs';
-- -------------------------------------------
-- 系统配置
-- -------------------------------------------
INSERT INTO system_configs (`key`, `value`, description) VALUES
('listing.review_required', 'true', '商品是否需要审核'),
('order.pending_payment_timeout_minutes', '15', '待支付超时时间(分钟)'),
('chat.default_support_admin_id', '1', '订单群聊回退客服 ID(仅当无可用客服时使用)'),
('chat.auto_welcome_message', '欢迎加入订单群聊!如有任何问题,请随时沟通。', '建群后自动发送的欢迎话术')
ON DUPLICATE KEY UPDATE
`value` = VALUES(`value`),
description = VALUES(description);
-100
View File
@@ -1,100 +0,0 @@
-- ============================================
-- 初始数据脚本
-- 包含权限、角色、系统配置等基础数据
-- ============================================
SET NAMES utf8mb4;
-- -------------------------------------------
-- 权限数据
-- -------------------------------------------
INSERT INTO permissions (code, name, resource, action) VALUES
('dashboard:view', '查看仪表盘', 'dashboard', 'view'),
('user:view', '查看用户', 'user', 'view'),
('user:freeze', '冻结用户', 'user', 'freeze'),
('user:unfreeze', '解冻用户', 'user', 'unfreeze'),
('order:view', '查看订单', 'order', 'view'),
('order:close', '关闭订单', 'order', 'close'),
('order:mark_abnormal', '标记异常订单', 'order', 'mark_abnormal'),
('listing:view', '查看商品', 'listing', 'view'),
('listing:approve', '审核通过商品', 'listing', 'approve'),
('listing:reject', '审核拒绝商品', 'listing', 'reject'),
('listing:offline', '下架商品', 'listing', 'offline'),
('dispute:view', '查看纠纷', 'dispute', 'view'),
('dispute:arbitrate', '仲裁纠纷', 'dispute', 'arbitrate'),
('chat:view', '查看客服群聊', 'chat', 'view'),
('chat:send', '发送客服消息', 'chat', 'send'),
('wallet:view', '查看资金流水', 'wallet', 'view'),
('admin_user:manage', '管理员管理', 'admin_user', 'manage'),
('role:manage', '角色管理', 'role', 'manage'),
('system_config:view', '查看系统配置', 'system_config', 'view'),
('system_config:update', '修改系统配置', 'system_config', 'update'),
('audit_log:view', '查看审计日志', 'audit_log', 'view')
ON DUPLICATE KEY UPDATE name = VALUES(name);
-- -------------------------------------------
-- 角色数据
-- -------------------------------------------
INSERT INTO roles (code, name, description) VALUES
('super_admin', '超级管理员', '拥有所有权限,不可被删除'),
('cs', '客服', '处理用户咨询、群聊、纠纷仲裁'),
('ops', '运营', '管理商品审核、订单管理、用户管理'),
('finance', '财务', '查看资金流水、订单信息')
ON DUPLICATE KEY UPDATE name = VALUES(name), description = VALUES(description);
-- -------------------------------------------
-- 角色权限关联
-- -------------------------------------------
-- super_admin 拥有所有权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r CROSS JOIN permissions p WHERE r.code = 'super_admin';
-- cs 角色权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'cs' AND p.code IN ('dashboard:view', 'user:view', 'dispute:view', 'dispute:arbitrate', 'chat:view', 'chat:send', 'order:view');
-- ops 角色权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'ops' AND p.code IN ('dashboard:view', 'user:view', 'user:freeze', 'user:unfreeze', 'order:view', 'order:close', 'order:mark_abnormal', 'listing:view', 'listing:approve', 'listing:reject', 'listing:offline', 'dispute:view', 'audit_log:view');
-- finance 角色权限
INSERT IGNORE INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code = 'finance' AND p.code IN ('dashboard:view', 'wallet:view', 'order:view');
-- -------------------------------------------
-- 管理员账号
-- -------------------------------------------
-- 生成 admin 密码 hash: admin123456
INSERT INTO admin_users (username, password_hash, nickname, status) VALUES
('admin', '$2a$10$vvDd.cYJCOBl9kr5jdRYXu9C/7GXcHmXsG17zJPHzPOZ0XGbqcWNS', '超级管理员', 'active'),
('kf1', '$2a$10$7cx3B4IWunLZO24o11YVGu4qY1J1naDdsTyvoCpcnOO.GV15qaf3C', '客服1', 'active'),
('kf2', '$2a$10$m6kLCXciFygpqIGUZ9LQtuEFAl40hb.S7zJmMiuC83WrU7OQM3TPC', '客服2', 'active')
ON DUPLICATE KEY UPDATE nickname = VALUES(nickname);
-- admin 关联 super_admin 角色
INSERT IGNORE INTO admin_user_roles (admin_user_id, role_id)
SELECT au.id, r.id FROM admin_users au, roles r
WHERE au.username = 'admin' AND r.code = 'super_admin';
-- 客服关联 cs 角色
INSERT IGNORE INTO admin_user_roles (admin_user_id, role_id)
SELECT au.id, r.id FROM admin_users au, roles r
WHERE au.username IN ('kf1', 'kf2') AND r.code = 'cs';
-- -------------------------------------------
-- 系统配置
-- -------------------------------------------
INSERT INTO system_configs (`key`, `value`, description) VALUES
('listing.review_required', 'true', '商品是否需要审核'),
('order.pending_payment_timeout_minutes', '15', '待支付超时时间(分钟)'),
('chat.default_support_admin_id', '1', '订单群聊回退客服 ID(仅当无可用客服时使用)'),
('chat.auto_welcome_message', '欢迎加入订单群聊!如有任何问题,请随时沟通。', '建群后自动发送的欢迎话术')
ON DUPLICATE KEY UPDATE description = VALUES(description);
@@ -1,17 +0,0 @@
-- 清理未接入业务逻辑的历史/预留系统配置,避免后台配置列表产生误解。
DELETE FROM system_configs
WHERE `key` IN (
'deposit.min_amount',
'platform.fee_ratio',
'realname.required_for_order',
'risk.sms_limit_per_ip_hour',
'risk.sms_limit_per_phone_hour',
'settlement.owner_cycle_days',
'settlement.platform_fee_rate',
'sms.rate_limit_per_hour',
'sms.rate_limit_per_minute',
'wallet.min_deposit',
'withdraw.min_amount',
'order.handoff_timeout_minutes',
'order.return_timeout_minutes'
);
@@ -1,2 +0,0 @@
ALTER TABLE chat_conversations
MODIFY order_id BIGINT UNSIGNED NULL;
@@ -1,23 +0,0 @@
-- -------------------------------------------
-- 开放上传记录
-- -------------------------------------------
CREATE TABLE listing_uploads (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
uploader_name VARCHAR(64) NOT NULL,
matched_admin_id BIGINT UNSIGNED NULL,
owner_id BIGINT UNSIGNED NULL,
client_upload_time DATETIME NULL,
client_ip VARCHAR(64) NOT NULL DEFAULT '',
raw_payload JSON NULL,
parsed_payload JSON NULL,
listing_id BIGINT UNSIGNED NULL,
status VARCHAR(32) NOT NULL DEFAULT 'draft_created',
error_message VARCHAR(255) NOT NULL DEFAULT '',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY idx_listing_uploads_uploader_name (uploader_name),
KEY idx_listing_uploads_matched_admin_id (matched_admin_id),
KEY idx_listing_uploads_owner_id (owner_id),
KEY idx_listing_uploads_listing_id (listing_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;