Files
ai_mip/db/init_sqlite.sql

126 lines
4.4 KiB
MySQL
Raw Normal View History

2026-01-16 22:06:46 +08:00
-- SQLite数据库初始化脚本
-- 适用于开发环境(ai_mip_dev.db)和生产环境(ai_mip_prod.db)
-- ----------------------------
-- Table structure for ai_mip_site
-- ----------------------------
DROP TABLE IF EXISTS ai_mip_site;
CREATE TABLE ai_mip_site (
id INTEGER PRIMARY KEY AUTOINCREMENT,
site_url TEXT NOT NULL UNIQUE,
site_name TEXT,
status TEXT CHECK(status IN ('active', 'inactive', 'pending')) DEFAULT 'active',
frequency INTEGER DEFAULT 1,
time_start TEXT DEFAULT '00:00:00',
time_end TEXT DEFAULT '23:59:59',
interval_minutes INTEGER DEFAULT 60,
ad_feature TEXT,
click_count INTEGER DEFAULT 0,
reply_count INTEGER DEFAULT 0,
site_dimension TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
created_by TEXT,
updated_by TEXT,
remark TEXT
);
-- 创建索引
CREATE UNIQUE INDEX idx_site_url ON ai_mip_site(site_url);
CREATE INDEX idx_status ON ai_mip_site(status);
CREATE INDEX idx_created_at ON ai_mip_site(created_at);
-- ----------------------------
-- Table structure for ai_mip_click
-- ----------------------------
DROP TABLE IF EXISTS ai_mip_click;
CREATE TABLE ai_mip_click (
id INTEGER PRIMARY KEY AUTOINCREMENT,
site_id INTEGER NOT NULL,
site_url TEXT NOT NULL,
click_time DATETIME NOT NULL,
user_ip TEXT,
user_agent TEXT,
referer_url TEXT,
device_type TEXT CHECK(device_type IN ('mobile', 'pc', 'tablet')),
click_count INTEGER DEFAULT 1,
is_valid INTEGER DEFAULT 1,
task_id TEXT,
operator TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (site_id) REFERENCES ai_mip_site(id)
);
-- 创建索引
CREATE INDEX idx_site_id ON ai_mip_click(site_id);
CREATE INDEX idx_click_time ON ai_mip_click(click_time);
CREATE INDEX idx_site_url_click ON ai_mip_click(site_url);
CREATE INDEX idx_click_time_site ON ai_mip_click(click_time, site_id);
CREATE INDEX idx_task_id ON ai_mip_click(task_id);
-- ----------------------------
-- Table structure for ai_mip_interaction
-- ----------------------------
DROP TABLE IF EXISTS ai_mip_interaction;
CREATE TABLE ai_mip_interaction (
id INTEGER PRIMARY KEY AUTOINCREMENT,
site_id INTEGER NOT NULL,
click_id INTEGER,
task_id TEXT,
interaction_type TEXT CHECK(interaction_type IN ('reply', 'comment', 'message', 'form_submit', 'follow', 'like', 'share')) NOT NULL,
interaction_time DATETIME NOT NULL,
interaction_status TEXT CHECK(interaction_status IN ('pending', 'success', 'failed', 'skipped')) DEFAULT 'pending',
reply_content TEXT,
reply_template_id TEXT,
ad_element_xpath TEXT,
ad_element_selector TEXT,
ad_text_content TEXT,
execution_mode TEXT CHECK(execution_mode IN ('auto', 'manual', 'semi_auto')) DEFAULT 'auto',
rpa_script TEXT,
browser_type TEXT CHECK(browser_type IN ('headless', 'headed', 'playwright', 'selenium')),
anti_detection_method TEXT,
proxy_ip TEXT,
user_agent TEXT,
custom_headers TEXT,
fingerprint_id TEXT,
response_received INTEGER DEFAULT 0,
response_content TEXT,
response_time DATETIME,
response_delay_seconds INTEGER,
is_successful INTEGER DEFAULT 0,
error_message TEXT,
retry_count INTEGER DEFAULT 0,
conversion_flag INTEGER DEFAULT 0,
site_dimension TEXT,
campaign_id TEXT,
operator TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
remark TEXT,
FOREIGN KEY (site_id) REFERENCES ai_mip_site(id),
FOREIGN KEY (click_id) REFERENCES ai_mip_click(id)
);
-- 创建索引
CREATE INDEX idx_site_id_interaction ON ai_mip_interaction(site_id);
CREATE INDEX idx_click_id_interaction ON ai_mip_interaction(click_id);
CREATE INDEX idx_task_id_interaction ON ai_mip_interaction(task_id);
CREATE INDEX idx_interaction_time ON ai_mip_interaction(interaction_time);
CREATE INDEX idx_interaction_status ON ai_mip_interaction(interaction_status);
CREATE INDEX idx_composite ON ai_mip_interaction(site_id, interaction_time, interaction_status);
CREATE INDEX idx_response_received ON ai_mip_interaction(response_received);
CREATE INDEX idx_conversion ON ai_mip_interaction(conversion_flag);
-- 创建触发器:自动更新 updated_at
CREATE TRIGGER update_ai_mip_site_timestamp
AFTER UPDATE ON ai_mip_site
BEGIN
UPDATE ai_mip_site SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
END;
CREATE TRIGGER update_ai_mip_interaction_timestamp
AFTER UPDATE ON ai_mip_interaction
BEGIN
UPDATE ai_mip_interaction SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
END;