126 lines
4.4 KiB
MySQL
126 lines
4.4 KiB
MySQL
|
|
-- 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;
|