Data Dictionary · Onboarding & Models
⚙️ Trang này sinh tự động từ source code bằng
scripts/gen-reference.mjs— đừng sửa tay, sửa code rồi chạynpm run gen:reference.
Thuộc Data Dictionary. 4 bảng, learner_context_models tới school_enrollments.
learner_context_models
Learner Context Model — SDD-002 §3, SDD-007 §6. Trạng thái ngắn hạn/hoàn cảnh.
migration: 0003_onboarding_models.sql
| Cột | Kiểu | Ràng buộc / ghi chú |
|---|---|---|
learner_id | TEXT | PRIMARY KEY REFERENCES learners(id) |
active_school_code | TEXT | — |
current_grade | INTEGER | — |
current_school | TEXT | — |
goal_blueprint_id | TEXT | — |
deadline | TEXT | — |
available_minutes_per_week | INTEGER | — |
energy | TEXT | — |
updated_at | TEXT | NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) |
Khóa ngoại: learner_id → learners
learner_exam_targets
Shark exam targets — REQ-ONB-07, SDD-011 §2b. Nhiều trường / nhiều lịch thi.
migration: 0003_onboarding_models.sql
| Cột | Kiểu | Ràng buộc / ghi chú |
|---|---|---|
id | TEXT | PRIMARY KEY |
learner_id | TEXT | NOT NULL REFERENCES learners(id) |
target_school_id | TEXT | — |
target_school_name | TEXT | NOT NULL |
province | TEXT | — |
specialist_subject | TEXT | NOT NULL |
non_specialist_subjects_json | TEXT | — |
exam_date_approx | TEXT | — |
priority | INTEGER | NOT NULL DEFAULT 1 |
status | TEXT | NOT NULL DEFAULT 'active' CHECK (status IN ('active','dropped')) |
created_at | TEXT | NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) |
target_kind | TEXT | NOT NULL DEFAULT 'school' — thêm ở 0010_target_kinds_whale_stories.sql |
target_score | TEXT | — thêm ở 0010_target_kinds_whale_stories.sql |
exam_subjects_json | TEXT | — thêm ở 0072_exam_target_subjects.sql |
Khóa ngoại: learner_id → learners
Index: idx_exam_targets_learner(learner_id)
learner_models
Learner Model (versioned) — SDD-002 §2/§16. Trạng thái tính toán, khởi tạo trước diagnosis.
migration: 0003_onboarding_models.sql
| Cột | Kiểu | Ràng buộc / ghi chú |
|---|---|---|
learner_id | TEXT | NOT NULL REFERENCES learners(id) |
version | INTEGER | NOT NULL DEFAULT 1 |
algorithm_version | TEXT | NOT NULL DEFAULT 'v1' |
generated_at | TEXT | NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) |
evidence_cutoff | TEXT | — |
summary_json | TEXT | — |
| — | table constraint | PRIMARY KEY (learner_id, version) |
Khóa ngoại: learner_id → learners
school_enrollments
Learner enroll vào (nhiều) school — REQ-ONB-01. School là context, không phải DB riêng.
migration: 0003_onboarding_models.sql
| Cột | Kiểu | Ràng buộc / ghi chú |
|---|---|---|
learner_id | TEXT | NOT NULL REFERENCES learners(id) |
school_code | TEXT | NOT NULL CHECK (school_code IN ('turtle','shark','octopus','squid','ray','whale')) |
status | TEXT | NOT NULL DEFAULT 'active' CHECK (status IN ('active','paused','left')) |
created_at | TEXT | NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) |
| — | table constraint | PRIMARY KEY (learner_id, school_code) |
Khóa ngoại: learner_id → learners