| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- -- 039: 创建系统配置、内容审核、日志审计相关表
- -- 1. 系统配置表
- CREATE TABLE IF NOT EXISTS aigcspace.system_config (
- id SERIAL PRIMARY KEY,
- config_key VARCHAR(100) UNIQUE NOT NULL,
- config_value TEXT NOT NULL,
- config_type VARCHAR(20) NOT NULL, -- string/number/boolean/json
- category VARCHAR(50) NOT NULL, -- basic/feature/limit/third_party
- description VARCHAR(500),
- updated_by INTEGER REFERENCES admin_users(id),
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- );
- -- 2. 配置修改历史表
- CREATE TABLE IF NOT EXISTS aigcspace.config_history (
- id SERIAL PRIMARY KEY,
- config_key VARCHAR(100) NOT NULL,
- old_value TEXT,
- new_value TEXT NOT NULL,
- updated_by INTEGER REFERENCES admin_users(id),
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- );
- -- 3. 登录日志表
- CREATE TABLE IF NOT EXISTS aigcspace.login_log (
- id SERIAL PRIMARY KEY,
- user_id VARCHAR(50) NOT NULL,
- username VARCHAR(100),
- user_type VARCHAR(20) NOT NULL, -- admin/user
- login_result VARCHAR(20) NOT NULL, -- success/failed
- fail_reason VARCHAR(200),
- ip_address VARCHAR(50),
- user_agent TEXT,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- );
- -- 4. API调用日志表
- CREATE TABLE IF NOT EXISTS aigcspace.api_log (
- id SERIAL PRIMARY KEY,
- user_id VARCHAR(50),
- username VARCHAR(100),
- api_path VARCHAR(500) NOT NULL,
- request_method VARCHAR(10) NOT NULL,
- request_params JSONB,
- response_status INTEGER,
- response_time INTEGER, -- 毫秒
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- );
- -- 5. 为ai_picture表添加审核字段
- ALTER TABLE aigcspace.ai_picture ADD COLUMN IF NOT EXISTS review_status VARCHAR(20) DEFAULT 'pending';
- ALTER TABLE aigcspace.ai_picture ADD COLUMN IF NOT EXISTS reviewed_by INTEGER REFERENCES aigcspace.admin_users(id);
- ALTER TABLE aigcspace.ai_picture ADD COLUMN IF NOT EXISTS reviewed_at TIMESTAMP;
- ALTER TABLE aigcspace.ai_picture ADD COLUMN IF NOT EXISTS reject_reason VARCHAR(500);
- -- 6. 为ai_video表添加审核字段
- ALTER TABLE aigcspace.ai_video ADD COLUMN IF NOT EXISTS review_status VARCHAR(20) DEFAULT 'pending';
- ALTER TABLE aigcspace.ai_video ADD COLUMN IF NOT EXISTS reviewed_by INTEGER REFERENCES aigcspace.admin_users(id);
- ALTER TABLE aigcspace.ai_video ADD COLUMN IF NOT EXISTS reviewed_at TIMESTAMP;
- ALTER TABLE aigcspace.ai_video ADD COLUMN IF NOT EXISTS reject_reason VARCHAR(500);
- -- 创建索引
- CREATE INDEX IF NOT EXISTS idx_config_category ON aigcspace.system_config(category);
- CREATE INDEX IF NOT EXISTS idx_config_key ON aigcspace.system_config(config_key);
- CREATE INDEX IF NOT EXISTS idx_history_config_key ON aigcspace.config_history(config_key);
- CREATE INDEX IF NOT EXISTS idx_history_updated_at ON aigcspace.config_history(updated_at DESC);
- CREATE INDEX IF NOT EXISTS idx_login_user_id ON aigcspace.login_log(user_id);
- CREATE INDEX IF NOT EXISTS idx_login_created_at ON aigcspace.login_log(created_at DESC);
- CREATE INDEX IF NOT EXISTS idx_login_result ON aigcspace.login_log(login_result);
- CREATE INDEX IF NOT EXISTS idx_api_user_id ON aigcspace.api_log(user_id);
- CREATE INDEX IF NOT EXISTS idx_api_created_at ON aigcspace.api_log(created_at DESC);
- CREATE INDEX IF NOT EXISTS idx_api_path ON aigcspace.api_log(api_path);
- CREATE INDEX IF NOT EXISTS idx_picture_review_status ON aigcspace.ai_picture(review_status);
- CREATE INDEX IF NOT EXISTS idx_video_review_status ON aigcspace.ai_video(review_status);
|