docs: 基本完成初版数据库设计
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
-- 已有库完成 004/005 后执行;最新空库基线已经包含此结构,不执行本文件。
|
||||
-- 保留旧 worksheets.grade,不自动回填;经审核的年级映射由导入/管理业务显式写入。
|
||||
BEGIN;
|
||||
SET LOCAL TIME ZONE 'UTC';
|
||||
SET LOCAL lock_timeout = '5s';
|
||||
SET LOCAL search_path = public, pg_catalog;
|
||||
|
||||
-- 年级与内容分类独立;同一 worksheet 可适用于多个(含不连续)年级。
|
||||
-- 不从年龄或旧 grade 自动生成关系,避免把推算值当作已核实的适用范围。
|
||||
CREATE TABLE public.worksheet_grades (
|
||||
worksheet_id varchar(128) COLLATE "C" NOT NULL,
|
||||
grade smallint NOT NULL,
|
||||
CONSTRAINT worksheet_grades_pkey PRIMARY KEY (worksheet_id, grade),
|
||||
CONSTRAINT worksheet_grades_worksheet_id_fkey FOREIGN KEY (worksheet_id)
|
||||
REFERENCES public.worksheets (id) ON UPDATE RESTRICT ON DELETE RESTRICT,
|
||||
CONSTRAINT worksheet_grades_grade_check CHECK (grade BETWEEN -4 AND 6)
|
||||
);
|
||||
|
||||
-- 联合主键支持查询功能的适用年级;反向索引用于年级菜单及筛选。
|
||||
CREATE INDEX worksheet_grades_grade_worksheet_idx
|
||||
ON public.worksheet_grades (grade, worksheet_id);
|
||||
|
||||
COMMENT ON TABLE public.worksheet_grades IS '功能适用年级的唯一权威关系;与内容分类独立,不从年龄自动推算';
|
||||
COMMENT ON COLUMN public.worksheet_grades.grade IS '-4 托班、-3 小班、-2 中班、-1 大班、0 幼小衔接、1至6 小学年级;无关系表示未配置,不表示全年级';
|
||||
COMMENT ON COLUMN public.worksheets.grade IS '旧版单年级兼容值;可能由年龄推算;保留原值,新年级筛选使用 worksheet_grades';
|
||||
COMMENT ON TABLE public.categories IS '内容分类树,与适用年级独立;多层循环需由服务端事务检查';
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user