|
|
@@ -1,6 +1,7 @@
|
|
|
-- 蹇冪煡瀹跺涵鏁版嵁搴撳垵濮嬪寲鑴氭湰
|
|
|
-- 鑷姩鍒涘缓琛?
|
|
|
--- 瀹跺涵琛?CREATE TABLE IF NOT EXISTS families (
|
|
|
+-- 瀹跺涵琛?
|
|
|
+CREATE TABLE IF NOT EXISTS families (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
name VARCHAR(100),
|
|
|
invite_code VARCHAR(8) UNIQUE,
|
|
|
@@ -9,7 +10,8 @@
|
|
|
INDEX idx_invite_code (invite_code)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 鐢ㄦ埛琛?CREATE TABLE IF NOT EXISTS users (
|
|
|
+-- 鐢ㄦ埛琛?
|
|
|
+CREATE TABLE IF NOT EXISTS users (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
openid VARCHAR(64) NOT NULL,
|
|
|
unionid VARCHAR(64),
|
|
|
@@ -24,7 +26,8 @@
|
|
|
INDEX idx_family_id (family_id)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 瀛╁瓙璇︽儏琛?CREATE TABLE IF NOT EXISTS children (
|
|
|
+-- 瀛╁瓙璇︽儏琛?
|
|
|
+CREATE TABLE IF NOT EXISTS children (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
user_id BIGINT NOT NULL,
|
|
|
family_id BIGINT NOT NULL,
|
|
|
@@ -45,7 +48,8 @@
|
|
|
INDEX idx_family_id (family_id)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 浠诲姟琛?CREATE TABLE IF NOT EXISTS tasks (
|
|
|
+-- 浠诲姟琛?
|
|
|
+CREATE TABLE IF NOT EXISTS tasks (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
family_id BIGINT NOT NULL,
|
|
|
creator_id BIGINT NOT NULL,
|
|
|
@@ -67,7 +71,8 @@
|
|
|
INDEX idx_category (category)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 绉垎娴佹按琛?CREATE TABLE IF NOT EXISTS points_log (
|
|
|
+-- 绉垎娴佹按琛?
|
|
|
+CREATE TABLE IF NOT EXISTS points_log (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
task_id BIGINT,
|
|
|
@@ -79,7 +84,8 @@
|
|
|
INDEX idx_type (type)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 绉垎娓呴浂璁板綍琛?CREATE TABLE IF NOT EXISTS points_reset_log (
|
|
|
+-- 绉垎娓呴浂璁板綍琛?
|
|
|
+CREATE TABLE IF NOT EXISTS points_reset_log (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
balance_before INT NOT NULL,
|
|
|
@@ -89,7 +95,8 @@
|
|
|
INDEX idx_child_id (child_id)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 濂栧姳琛?CREATE TABLE IF NOT EXISTS rewards (
|
|
|
+-- 濂栧姳琛?
|
|
|
+CREATE TABLE IF NOT EXISTS rewards (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
family_id BIGINT NOT NULL,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
@@ -106,7 +113,8 @@
|
|
|
INDEX idx_is_template (is_template)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 濂栧姳鍒嗙被琛?CREATE TABLE IF NOT EXISTS reward_categories (
|
|
|
+-- 濂栧姳鍒嗙被琛?
|
|
|
+CREATE TABLE IF NOT EXISTS reward_categories (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
family_id BIGINT NOT NULL,
|
|
|
name VARCHAR(32) NOT NULL,
|
|
|
@@ -140,7 +148,8 @@ CREATE TABLE IF NOT EXISTS sensitive_words (
|
|
|
INDEX idx_word (word)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 浠诲姟瀹℃牳琛?CREATE TABLE IF NOT EXISTS task_reviews (
|
|
|
+-- 浠诲姟瀹℃牳琛?
|
|
|
+CREATE TABLE IF NOT EXISTS task_reviews (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
task_id BIGINT NOT NULL,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
@@ -159,7 +168,8 @@ CREATE TABLE IF NOT EXISTS sensitive_words (
|
|
|
INDEX idx_ai_result (ai_result)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 鍕嬬珷瀹氫箟琛?CREATE TABLE IF NOT EXISTS badge_definitions (
|
|
|
+-- 鍕嬬珷瀹氫箟琛?
|
|
|
+CREATE TABLE IF NOT EXISTS badge_definitions (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
badge_type VARCHAR(32) NOT NULL,
|
|
|
name VARCHAR(50) NOT NULL,
|
|
|
@@ -171,7 +181,8 @@ CREATE TABLE IF NOT EXISTS sensitive_words (
|
|
|
INDEX idx_badge_type (badge_type)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 鍕嬬珷琛?CREATE TABLE IF NOT EXISTS badges (
|
|
|
+-- 鍕嬬珷琛?
|
|
|
+CREATE TABLE IF NOT EXISTS badges (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
badge_type VARCHAR(32) NOT NULL,
|
|
|
@@ -187,13 +198,15 @@ CREATE TABLE IF NOT EXISTS streak_milestones (
|
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 鎻掑叆鎵撳崱閲岀▼纰戞暟鎹?INSERT INTO streak_milestones (days, reward_points) VALUES
|
|
|
+-- 鎻掑叆鎵撳崱閲岀▼纰戞暟鎹?
|
|
|
+INSERT INTO streak_milestones (days, reward_points) VALUES
|
|
|
(3, 5),
|
|
|
(7, 10),
|
|
|
(30, 30),
|
|
|
(100, 100);
|
|
|
|
|
|
--- 涓撴敞璁粌璁板綍琛?CREATE TABLE IF NOT EXISTS focus_sessions (
|
|
|
+-- 涓撴敞璁粌璁板綍琛?
|
|
|
+CREATE TABLE IF NOT EXISTS focus_sessions (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
mode ENUM('simple', 'pomodoro') NOT NULL,
|
|
|
@@ -206,7 +219,8 @@ CREATE TABLE IF NOT EXISTS streak_milestones (
|
|
|
INDEX idx_child_id_completed (child_id, completed_at)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 涓撴敞璁粌閰嶇疆琛?CREATE TABLE IF NOT EXISTS focus_config (
|
|
|
+-- 涓撴敞璁粌閰嶇疆琛?
|
|
|
+CREATE TABLE IF NOT EXISTS focus_config (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
family_id BIGINT,
|
|
|
max_daily_count TINYINT DEFAULT 3,
|
|
|
@@ -214,7 +228,8 @@ CREATE TABLE IF NOT EXISTS streak_milestones (
|
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- DAN娴嬭瘎琛?CREATE TABLE IF NOT EXISTS dan_assessments (
|
|
|
+-- DAN娴嬭瘎琛?
|
|
|
+CREATE TABLE IF NOT EXISTS dan_assessments (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
child_id BIGINT NOT NULL,
|
|
|
dan_level VARCHAR(2) NOT NULL,
|
|
|
@@ -226,7 +241,8 @@ CREATE TABLE IF NOT EXISTS streak_milestones (
|
|
|
INDEX idx_child_id_level (child_id, dan_level)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
|
|
--- 浠诲姟妯℃澘琛?CREATE TABLE IF NOT EXISTS task_templates (
|
|
|
+-- 浠诲姟妯℃澘琛?
|
|
|
+CREATE TABLE IF NOT EXISTS task_templates (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
dan_level VARCHAR(2) NOT NULL,
|
|
|
title VARCHAR(200) NOT NULL,
|