Files
Edu/scripts/content-init.sql
SpecialX 921fe82771 feat(content): 修复服务并添加chapters/knowledge-points/questions模块
- database.ts 导出db常量替代getDb()函数

- env.ts JWT_SECRET/ES_URL/NEO4J_URL改optional加DEV_MODE

- neo4j.ts driver惰性创建+try/catch+connectionTimeout:3000

- health/lifecycle改用Drizzle原生查询

- textbooks.schema修复integer到int+导出NewTextbook类型

- 新建chapters/knowledge-points/questions三模块CRUD

- knowledge-points含Neo4j前置依赖图非阻塞查询

- content-init.sql创建4张表

端到端验证: textbooks/chapters/knowledge-points/questions全CRUD通过
2026-07-09 08:52:15 +08:00

48 lines
1.8 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Content 服务数据库初始化脚本
-- 表content_textbooks / content_chapters / content_knowledge_points / content_questions
-- 表结构与 services/content/src 下的 Drizzle schema 对齐
CREATE TABLE IF NOT EXISTS content_textbooks (
id CHAR(36) NOT NULL PRIMARY KEY,
title VARCHAR(200) NOT NULL,
subject_id CHAR(36) NOT NULL,
grade_id CHAR(36) NOT NULL,
version VARCHAR(50) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_textbooks_subject_id (subject_id),
INDEX idx_textbooks_grade_id (grade_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS content_chapters (
id CHAR(36) NOT NULL PRIMARY KEY,
textbook_id CHAR(36) NOT NULL,
title VARCHAR(200) NOT NULL,
order_num INT NOT NULL,
parent_id CHAR(36),
INDEX idx_chapters_textbook_id (textbook_id),
INDEX idx_chapters_parent_id (parent_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS content_knowledge_points (
id CHAR(36) NOT NULL PRIMARY KEY,
chapter_id CHAR(36) NOT NULL,
title VARCHAR(200) NOT NULL,
description TEXT,
INDEX idx_knowledge_points_chapter_id (chapter_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS content_questions (
id CHAR(36) NOT NULL PRIMARY KEY,
knowledge_point_id CHAR(36) NOT NULL,
type VARCHAR(50) NOT NULL,
content TEXT NOT NULL,
answer TEXT,
explanation TEXT,
difficulty INT DEFAULT 3,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_questions_knowledge_point_id (knowledge_point_id),
INDEX idx_questions_type (type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;