---
url: https://docs.nemo12.com/reference/data-dictionary/learning-experience.md
description: >-
  Từ điển dữ liệu D1, domain Learning Experience: 1 bảng, learning_experiences;
  cột, kiểu, khoá ngoại, index.
---

# Data Dictionary · Learning Experience

> ⚙️ **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ạy `npm run gen:reference`.

Thuộc [Data Dictionary](../data-dictionary.md). 1 bảng, `learning_experiences`.

## `learning_experiences`

Migration 0019 — Learning / Assessment Experience sinh từ blueprint. SDD-004 §5-8, SDD-013 §3, REQ-CNT-05/09/11. Mỗi experience ghi provenance {blueprint_id, blueprint_version, model, prompt_version} theo QG-010 / SDD-003 §13, để soát ngược được "bản này sinh từ blueprint nào, version mấy, model nào".

migration: `0019_learning_experiences.sql`

| Cột | Kiểu | Ràng buộc / ghi chú |
| --- | --- | --- |
| `id` | TEXT | PRIMARY KEY |
| `blueprint_id` | TEXT | REFERENCES content_blueprints(id) |
| `blueprint_version` | INTEGER | — |
| `run_id` | TEXT | REFERENCES generation_runs(id) |
| `kind` | TEXT | NOT NULL CHECK (kind IN ('lx','assessment')) |
| `experience_type` | TEXT | ,                 -- micro | practice | lab | exam | diagnostic | writing... |
| `subject_id` | TEXT | — |
| `grade` | INTEGER | — |
| `node_id` | TEXT | — |
| `title_vi` | TEXT | NOT NULL |
| `summary` | TEXT | — |
| `content_json` | TEXT | NOT NULL |
| `provenance_json` | TEXT | — |
| `quality_json` | TEXT | ,                    -- self-check của model + đánh giá người soát |
| `status` | TEXT | NOT NULL DEFAULT 'draft' CHECK (status IN ('draft','review','published','deprecated')) |
| `version` | INTEGER | NOT NULL DEFAULT 1 |
| `created_by` | TEXT | — |
| `created_at` | TEXT | NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) |

**Khóa ngoại:** `blueprint_id` → `content_blueprints` · `run_id` → `generation_runs`

**Index:** `idx_lx_blueprint`(blueprint_id, status) · `idx_lx_run`(run_id)
