-- ClickHouse 数据库初始化脚本
-- 适用服务：data-ana（数据分析）
-- 表结构：student_dashboard_view（学生学情宽表）/ student_errors（错题本）
-- 与 services/data-ana/src/data_ana/clickhouse_client.py 中的查询字段对齐
--
-- 使用方式（启用 ClickHouse 时执行一次）：
--   clickhouse-client --multiquery < scripts/clickhouse-init.sql
-- 注意：ClickHouse 为可选依赖，未配置时 data-ana 服务进入降级模式。

-- 数据库
CREATE DATABASE IF NOT EXISTS edu_analytics;

-- 学生学情宽表（考试/班级/知识点维度）
CREATE TABLE IF NOT EXISTS edu_analytics.student_dashboard_view (
  student_id String,
  class_id String,
  exam_id String,
  subject_id String,
  score Float64,
  rank_in_class UInt32,
  knowledge_point_id String,
  mastery_level Float32,
  error_count UInt32,
  last_updated DateTime
) ENGINE = MergeTree()
ORDER BY (student_id, class_id, exam_id);

-- 学生错题表（错题本）
CREATE TABLE IF NOT EXISTS edu_analytics.student_errors (
  student_id String,
  question_id String,
  knowledge_point_id String,
  error_count UInt32,
  last_error_time DateTime,
  content String
) ENGINE = MergeTree()
ORDER BY (student_id, knowledge_point_id);
