远端存一份整库快照:full.sql(含账号/答题记录,不含 API Key)

- data/*.db 一直被 gitignore,远端从来没有数据库文件,库一重置章节题目就没了;
  现在除 catalog.sql(纯内容)外,再提交 data/dump/full.sql 整库快照,
  新机器 clone 后 ./scripts/init.sh → db.sh load data/dump/full.sql 即可整库还原
- dump 用双引号包住表名与列名,修掉 users.group 保留字导致快照无法回灌的 bug
- dump/load 的相对路径按仓库根解析(此前从 backend/ 调用会写错位置)
- 快照排除 llm_settings,LLM API Key 不会进 git
main
mula.liu 2026-09-18 17:35:17 +08:00
parent ac620bcbeb
commit b3dc8526f6
5 changed files with 521 additions and 216 deletions

View File

@ -321,14 +321,19 @@ cd backend
./scripts/db.sh restore [文件|latest] # 回滚;覆盖前先把当前库再备份一份 ./scripts/db.sh restore [文件|latest] # 回滚;覆盖前先把当前库再备份一份
./scripts/db.sh dump # 导出 data/dump/catalog.sql(内容快照,建议随改动提交) ./scripts/db.sh dump # 导出 data/dump/catalog.sql(内容快照,建议随改动提交)
./scripts/db.sh load # 把 data/dump/catalog.sql 灌回当前库 ./scripts/db.sh load # 把 data/dump/catalog.sql 灌回当前库
./scripts/db.sh dump data/dump/full.sql --full # 整库快照(含账号/答题记录)提交进仓库
./scripts/db.sh load data/dump/full.sql # 新机器上整库还原
``` ```
* `dump` 只导**内容**:教材、章节、知识点与关联、课程、题库。 * `dump` 只导**内容**:教材、章节、知识点与关联、课程、题库。
这份文本提交进 git,远端仓库里就始终有一份可恢复的数据库快照。 这份文本提交进 git,远端仓库里就始终有一份可恢复的数据库快照。
* 账号、密码散列、答题记录、错题本属于个人数据,**不进 dump、不进 git**; * 默认 `dump` 不含账号与学习数据。希望远端也能整库还原时,显式给输出路径,把全量快照
需要整机迁移时用 `./scripts/db.sh dump --full`(写到 `data/backups/math.full.sql`) 提交进仓库:`./scripts/db.sh dump data/dump/full.sql --full`(含密码散列、答题记录、
或直接用 `backup` 的二进制备份。 错题本;**不含 `llm_settings`,API Key 不会进 git**)。不想让个人数据上远端就删掉这份文件。
* 新机器上的恢复顺序:`./scripts/init.sh`(建库 + 种子)→ `./scripts/db.sh load` → 重启后端。 不带输出路径的 `dump --full` 只写本机 `data/backups/math.full.sql`。
* 新机器上的恢复顺序:`./scripts/init.sh`(建库 + 种子)→ `./scripts/db.sh load`(内容)
或 `./scripts/db.sh load data/dump/full.sql`(整库)→ 重启后端。
* 想确认远端有没有库快照:`git log --oneline -- data/dump` 有记录才说明推上去了。
* 电子书与库分离:`data/ebooks/` 随仓库提交,库只存文件名。 * 电子书与库分离:`data/ebooks/` 随仓库提交,库只存文件名。
若库丢了,`seed/ebooks.py` 会按「大小 + SHA-256」认领磁盘上的已知电子书 若库丢了,`seed/ebooks.py` 会按「大小 + SHA-256」认领磁盘上的已知电子书
(`KNOWN_EBOOKS`),重建教材条目并把文件挪回该书目录,不必重新上传。 (`KNOWN_EBOOKS`),重建教材条目并把文件挪回该书目录,不必重新上传。

View File

@ -141,17 +141,21 @@ def dump_sql(
"SELECT name FROM sqlite_master WHERE type='table'" "SELECT name FROM sqlite_master WHERE type='table'"
) )
} }
try:
shown = out.resolve().relative_to(REPO_ROOT)
except ValueError:
shown = out
lines = [ lines = [
"-- nex_math 内容快照(教材 / 章节 / 知识点 / 课程 / 题库)", "-- nex_math 内容快照(教材 / 章节 / 知识点 / 课程 / 题库)",
f"-- 生成时间:{datetime.now().isoformat(timespec='seconds')}", f"-- 生成时间:{datetime.now().isoformat(timespec='seconds')}",
"-- 恢复:./scripts/db.sh load data/dump/catalog.sql", f"-- 恢复:./scripts/db.sh load {shown}",
"PRAGMA foreign_keys=OFF;", "PRAGMA foreign_keys=OFF;",
"BEGIN TRANSACTION;", "BEGIN TRANSACTION;",
] ]
rows_total = 0 rows_total = 0
for table in reversed(wanted): for table in reversed(wanted):
if table in existing: if table in existing:
lines.append(f"DELETE FROM {table};") lines.append(f'DELETE FROM "{table}";')
for table in wanted: for table in wanted:
if table not in existing: if table not in existing:
continue continue
@ -162,8 +166,9 @@ def dump_sql(
for row in conn.execute(f"SELECT * FROM {table}"): for row in conn.execute(f"SELECT * FROM {table}"):
columns = row.keys() columns = row.keys()
values = ", ".join(_literal(row[key]) for key in columns) values = ", ".join(_literal(row[key]) for key in columns)
cols = ", ".join(f'"{key}"' for key in columns)
lines.append( lines.append(
f"INSERT INTO {table} ({', '.join(columns)}) " f'INSERT INTO "{table}" ({cols}) '
f"VALUES ({values});" f"VALUES ({values});"
) )
rows_total += 1 rows_total += 1
@ -213,6 +218,11 @@ def load_sql(script: Path) -> bool:
return created return created
def _abs(path: Path) -> Path:
"""相对路径按仓库根解析(脚本会从 backend/ 目录调用)。"""
return path if path.is_absolute() else REPO_ROOT / path
def _slug(text: str) -> str: def _slug(text: str) -> str:
cleaned = "".join(ch if ch.isalnum() or ch in "-_" else "-" for ch in text) cleaned = "".join(ch if ch.isalnum() or ch in "-_" else "-" for ch in text)
return cleaned.strip("-")[:32] or "backup" return cleaned.strip("-")[:32] or "backup"
@ -231,8 +241,9 @@ def main(argv: list[str] | None = None) -> int:
sub.add_parser("list", help="列出本机备份") sub.add_parser("list", help="列出本机备份")
p_dump = sub.add_parser("dump", help="导出可提交的内容快照") p_dump = sub.add_parser("dump", help="导出可提交的内容快照")
p_dump.add_argument("out", nargs="?", default=str(DEFAULT_DUMP)) p_dump.add_argument("out", nargs="?", default=None, help="输出文件,默认 data/dump/catalog.sql")
p_dump.add_argument("--full", action="store_true", help="含用户与学习数据") p_dump.add_argument("--full", action="store_true",
help="含账号与学习数据(默认写到 data/backups/math.full.sql)")
p_load = sub.add_parser("load", help="把内容快照灌回当前库") p_load = sub.add_parser("load", help="把内容快照灌回当前库")
p_load.add_argument("file", nargs="?", default=str(DEFAULT_DUMP)) p_load.add_argument("file", nargs="?", default=str(DEFAULT_DUMP))
@ -266,22 +277,25 @@ def main(argv: list[str] | None = None) -> int:
print("提示:重启后端后生效。") print("提示:重启后端后生效。")
elif args.cmd == "dump": elif args.cmd == "dump":
if args.full: if args.full:
# 含账号与学习数据:只写进本机备份目录,不进 git # 含账号与学习数据;显式给 out 时可以提交进 git
tables = CATALOG_TABLES + [ tables = CATALOG_TABLES + [
t for t in PRIVATE_TABLES if t not in CATALOG_TABLES t for t in PRIVATE_TABLES if t not in CATALOG_TABLES
] ]
out = BACKUP_DIR / "math.full.sql" out = Path(args.out) if args.out else BACKUP_DIR / "math.full.sql"
else: else:
tables = CATALOG_TABLES tables = CATALOG_TABLES
out = Path(args.out) out = Path(args.out) if args.out else DEFAULT_DUMP
# API Key 等机密永远不进 SQL 快照
tables = [t for t in tables if t != "llm_settings"]
out = _abs(out)
written, rows = dump_sql(out, tables) written, rows = dump_sql(out, tables)
print(f"{written} {rows} 行") print(f"{written} {rows} 行")
elif args.cmd == "load": elif args.cmd == "load":
created = load_sql(Path(args.file)) created = load_sql(_abs(Path(args.file)))
print(f"已导入:{args.file}") print(f"已导入:{args.file}")
if created: if created:
print("提示:这是一个新建的库。快照只含内容(教材/章节/知识点/题目)," print("提示:这是一个新建的库。full 快照(含账号与学习数据)到这里已整库还原;"
"账号与学习数据请用 ./scripts/init.sh 或 python -m seed 生成。") "只含内容的快照需再用 ./scripts/init.sh 或 python -m seed 生成账号。")
print("提示:重启后端后生效。") print("提示:重启后端后生效。")
return 0 return 0

View File

@ -1,216 +1,216 @@
-- nex_math 内容快照(教材 / 章节 / 知识点 / 课程 / 题库) -- nex_math 内容快照(教材 / 章节 / 知识点 / 课程 / 题库)
-- 生成时间:2026-09-18T14:58:35 -- 生成时间:2026-09-18T17:35:08
-- 恢复:./scripts/db.sh load data/dump/catalog.sql -- 恢复:./scripts/db.sh load data/dump/catalog.sql
PRAGMA foreign_keys=OFF; PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION; BEGIN TRANSACTION;
DELETE FROM question_knowledge; DELETE FROM "question_knowledge";
DELETE FROM questions; DELETE FROM "questions";
DELETE FROM knowledge_resources; DELETE FROM "knowledge_resources";
DELETE FROM knowledge_relations; DELETE FROM "knowledge_relations";
DELETE FROM courses; DELETE FROM "courses";
DELETE FROM chapter_knowledge; DELETE FROM "chapter_knowledge";
DELETE FROM knowledge; DELETE FROM "knowledge";
DELETE FROM chapters; DELETE FROM "chapters";
DELETE FROM textbooks; DELETE FROM "textbooks";
-- textbooks: 7 行 -- textbooks: 7 行
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (1, '函数和图像(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, E. G. Glagoleva, E. E. Shnol 著;麻希南、胡长青 译', '中国科学技术大学出版社', '9787312050053', '2020年12月第1版', '初中至高中低年级', '', '本系统的主教材。以大量真实图像(地震图、心电图等)引入函数,强调“画图就是看见公式”,系统训练函数概念、图像与性质直觉;英译本 Functions and Graphs 由 Dover 出版。现有函数与对称性题库以本书为依据。', 0, 'da4d4ff2d0b0448fac3719cb7d536d5b.pdf', '函数和图像(盖尔范德中学生数学思维丛书).pdf', 'pdf', 2352775, 108, '2026-09-18 05:52:20.133460'); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (1, '函数和图像(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, E. G. Glagoleva, E. E. Shnol 著;麻希南、胡长青 译', '中国科学技术大学出版社', '9787312050053', '2020年12月第1版', '初中至高中低年级', '', '本系统的主教材。以大量真实图像(地震图、心电图等)引入函数,强调“画图就是看见公式”,系统训练函数概念、图像与性质直觉;英译本 Functions and Graphs 由 Dover 出版。现有函数与对称性题库以本书为依据。', 0, 'da4d4ff2d0b0448fac3719cb7d536d5b.pdf', '函数和图像(盖尔范德中学生数学思维丛书).pdf', 'pdf', 2352775, 108, '2026-09-18 05:52:20.133460');
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (2, '代数(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, A. Shen 著;胡长青、麻希南 译', '中国科学技术大学出版社', '9787312048937', '2020年第1版', '初中至高中低年级', '', '用问题驱动的叙述串联自然数、负数、代数式与方程,重视“为什么可以这样变形”的代数思维,适合作为代数学基础。', 1, '', '', '', 0, 0, NULL); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (2, '代数(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, A. Shen 著;胡长青、麻希南 译', '中国科学技术大学出版社', '9787312048937', '2020年第1版', '初中至高中低年级', '', '用问题驱动的叙述串联自然数、负数、代数式与方程,重视“为什么可以这样变形”的代数思维,适合作为代数学基础。', 1, '', '', '', 0, 0, NULL);
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (3, '几何(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand 等 著', '中国科学技术大学出版社', '9787312057793', '2023年第1版', '初中至高中低年级', '', '以直观可视的方式从图形构造逐步建立几何,突出“先看见、再证明”的思维路线。', 2, '', '', '', 0, 0, NULL); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (3, '几何(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand 等 著', '中国科学技术大学出版社', '9787312057793', '2023年第1版', '初中至高中低年级', '', '以直观可视的方式从图形构造逐步建立几何,突出“先看见、再证明”的思维路线。', 2, '', '', '', 0, 0, NULL);
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (4, '三角函数(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, M. Saul 著;王作勤 译', '中国科学技术大学出版社', '9787312046957', '2020年第1版', '初中至高中低年级', '', '从初等几何直觉进入正弦、余弦与正切,解释周期与波动现象的数学本质。', 3, 'c1945315d608455eb429eacc3378d7d5.pdf', '三角函数(盖尔范德中学生数学思维丛书).pdf', 'pdf', 4804517, 228, '2026-09-18 05:52:20.155476'); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (4, '三角函数(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, M. Saul 著;王作勤 译', '中国科学技术大学出版社', '9787312046957', '2020年第1版', '初中至高中低年级', '', '从初等几何直觉进入正弦、余弦与正切,解释周期与波动现象的数学本质。', 3, 'c1945315d608455eb429eacc3378d7d5.pdf', '三角函数(盖尔范德中学生数学思维丛书).pdf', 'pdf', 4804517, 228, '2026-09-18 05:52:20.155476');
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (5, '坐标方法(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, E. G. Glagoleva, A. A. Kirillov 著;王作勤 译', '中国科学技术大学出版社', '9787312050060', '2020年12月第1版', '初中至高中低年级', '', '讲解如何用坐标把几何问题转化为代数问题,是解析几何与函数图像方法的基础。', 4, '', '', '', 0, 0, NULL); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (5, '坐标方法(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, E. G. Glagoleva, A. A. Kirillov 著;王作勤 译', '中国科学技术大学出版社', '9787312050060', '2020年12月第1版', '初中至高中低年级', '', '讲解如何用坐标把几何问题转化为代数问题,是解析几何与函数图像方法的基础。', 4, '', '', '', 0, 0, NULL);
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (6, '普林斯顿微积分读本(修订版)', '阿德里安·班纳 (Adrian Banner)', '人民邮电出版社', '', '', '高中至大学先修', '', '面向微积分入门的系统辅导书,覆盖极限、导数、积分与级数,按考点组织,适合自学与考前查漏补缺。', 5, '4559e9e2fa084fb7a8e8a06aea5196bc.epub', '普林斯顿微积分读本(修订版).epub', 'epub', 9842024, 190, '2026-09-18 05:52:20.122225'); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (6, '普林斯顿微积分读本(修订版)', '阿德里安·班纳 (Adrian Banner)', '人民邮电出版社', '', '', '高中至大学先修', '', '面向微积分入门的系统辅导书,覆盖极限、导数、积分与级数,按考点组织,适合自学与考前查漏补缺。', 5, '4559e9e2fa084fb7a8e8a06aea5196bc.epub', '普林斯顿微积分读本(修订版).epub', 'epub', 9842024, 190, '2026-09-18 05:52:20.122225');
INSERT INTO textbooks (id, name, author, publisher, isbn, edition, grade, link, description, position, ebook_file, ebook_name, ebook_format, ebook_size, ebook_pages, ebook_uploaded_at) VALUES (7, '柯西-施瓦茨大师课:不等式的艺术', 'J. Michael Steele 著;欧阳顺湘 译', '高等教育出版社 · 世界数学精品译丛 7', '9787040278678', '', '高中至大学', '', 'Cambridge 出版的不等式专题大师课:以 Cauchy-Schwarz 不等式为主线,串起凸性、排序、切比雪夫、Young、Hölder、Minkowski 等常用不等式,每章配大量例题与习题,适合竞赛与数学分析进阶训练。', 6, '8dc7e48036ac4db8abf0020334b47b07.pdf', '柯西-施瓦茨大师课:不等式的艺术.pdf', 'pdf', 44110741, 268, '2026-09-18 06:44:14.147181'); INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (7, '柯西-施瓦茨大师课:不等式的艺术', 'J. Michael Steele 著;欧阳顺湘 译', '高等教育出版社 · 世界数学精品译丛 7', '9787040278678', '', '高中至大学', '', 'Cambridge 出版的不等式专题大师课:以 Cauchy-Schwarz 不等式为主线,串起凸性、排序、切比雪夫、Young、Hölder、Minkowski 等常用不等式,每章配大量例题与习题,适合竞赛与数学分析进阶训练。', 6, '8dc7e48036ac4db8abf0020334b47b07.pdf', '柯西-施瓦茨大师课:不等式的艺术.pdf', 'pdf', 44110741, 268, '2026-09-18 06:44:14.147181');
-- chapters: 29 行 -- chapters: 29 行
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (1, 1, '引言', 0, '函数、自变量、定义域与函数值:从真实图像理解函数。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (1, 1, '引言', 0, '函数、自变量、定义域与函数值:从真实图像理解函数。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (2, 1, '第1章 例子', 1, '不同函数图像的直观例子与作图方法。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (2, 1, '第1章 例子', 1, '不同函数图像的直观例子与作图方法。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (3, 1, '第2章 线性函数', 2, '一次函数的图像、斜率与直线。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (3, 1, '第2章 线性函数', 2, '一次函数的图像、斜率与直线。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (4, 1, '第3章 函数 y=|x|', 3, '绝对值函数的图像与性质,关于 y 轴对称的典型例子。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (4, 1, '第3章 函数 y=|x|', 3, '绝对值函数的图像与性质,关于 y 轴对称的典型例子。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (5, 1, '第4章 二次三项式', 4, '二次函数图像、配方、判别式与零点。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (5, 1, '第4章 二次三项式', 4, '二次函数图像、配方、判别式与零点。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (6, 1, '第5章 分式线性函数', 5, 'y=1/x 类函数图像与渐近行为。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (6, 1, '第5章 分式线性函数', 5, 'y=1/x 类函数图像与渐近行为。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (7, 1, '第6章 幂函数', 6, 'y=x、y=x²、y=x³ 等幂函数的奇偶性与对称性。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (7, 1, '第6章 幂函数', 6, 'y=x、y=x²、y=x³ 等幂函数的奇偶性与对称性。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (8, 1, '第7章 有理函数', 7, '更一般的有理函数图像与性质综合。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (8, 1, '第7章 有理函数', 7, '更一般的有理函数图像与性质综合。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (9, 3, '点与直线:走进射影几何', 0, '从点与直线的位置关系出发理解射影几何的基本思想。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (9, 3, '点与直线:走进射影几何', 0, '从点与直线的位置关系出发理解射影几何的基本思想。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (10, 3, '平行线:走进仿射几何', 1, '以平行关系为线索建立仿射几何的直观框架。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (10, 3, '平行线:走进仿射几何', 1, '以平行关系为线索建立仿射几何的直观框架。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (11, 3, '面积:走进辛几何', 2, '通过面积概念与保持面积变换认识辛几何。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (11, 3, '面积:走进辛几何', 2, '通过面积概念与保持面积变换认识辛几何。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (12, 3, '圆:走进欧氏几何', 3, '以圆为核心回到经典欧氏几何的结构与性质。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (12, 3, '圆:走进欧氏几何', 3, '以圆为核心回到经典欧氏几何的结构与性质。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (13, 4, '第1章 三角函数', 0, '从角与旋转进入三角函数,建立正弦、余弦、正切的基本概念。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (13, 4, '第1章 三角函数', 0, '从角与旋转进入三角函数,建立正弦、余弦、正切的基本概念。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (14, 4, '第2章 三角形中的三角比', 1, '在直角三角形中定义正弦、余弦与正切,理解锐角三角比。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (14, 4, '第2章 三角形中的三角比', 1, '在直角三角形中定义正弦、余弦与正切,理解锐角三角比。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (15, 4, '第3章 三角比之间的关系', 2, '同角三角比的关系、互余关系与基本恒等式推导。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (15, 4, '第3章 三角比之间的关系', 2, '同角三角比的关系、互余关系与基本恒等式推导。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (16, 4, '第4章 三角形内的关系', 3, '正弦定理、余弦定理以及三角形中边角关系的应用。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (16, 4, '第4章 三角形内的关系', 3, '正弦定理、余弦定理以及三角形中边角关系的应用。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (17, 4, '第5章 角与旋转', 4, '把角推广到任意旋转角,定义任意角的三角函数。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (17, 4, '第5章 角与旋转', 4, '把角推广到任意旋转角,定义任意角的三角函数。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (18, 4, '第6章 弧度法', 5, '引入弧度制,理解弧长、扇形与角度制换算。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (18, 4, '第6章 弧度法', 5, '引入弧度制,理解弧长、扇形与角度制换算。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (19, 4, '第7章 加法公式', 6, '两角和与差的三角函数公式及其几何与代数证明。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (19, 4, '第7章 加法公式', 6, '两角和与差的三角函数公式及其几何与代数证明。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (20, 4, '第8章 三角恒等式', 7, '倍角、半角与和差化积等常用三角恒等式。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (20, 4, '第8章 三角恒等式', 7, '倍角、半角与和差化积等常用三角恒等式。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (21, 4, '第9章 三角函数的图形', 8, '正弦、余弦、正切函数的图像、周期与变换。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (21, 4, '第9章 三角函数的图形', 8, '正弦、余弦、正切函数的图像、周期与变换。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (22, 4, '第10章 反函数与三角方程', 9, '反三角函数的基本概念与三角方程的求解方法。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (22, 4, '第10章 反函数与三角方程', 9, '反三角函数的基本概念与三角方程的求解方法。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (23, 5, '绪论', 0, '用坐标把几何问题转化为代数问题的方法引言。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (23, 5, '绪论', 0, '用坐标把几何问题转化为代数问题的方法引言。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (24, 5, '第1章 直线上点的坐标', 1, '数轴、数的绝对值与两点之间的距离。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (24, 5, '第1章 直线上点的坐标', 1, '数轴、数的绝对值与两点之间的距离。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (25, 5, '第2章 平面里点的坐标', 2, '坐标平面、坐标间关系、距离公式、确定平面图形与其他坐标系。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (25, 5, '第2章 平面里点的坐标', 2, '坐标平面、坐标间关系、距离公式、确定平面图形与其他坐标系。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (26, 5, '第3章 三维空间里点的坐标', 3, '空间坐标轴与坐标平面,确定空间中的图形。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (26, 5, '第3章 三维空间里点的坐标', 3, '空间坐标轴与坐标平面,确定空间中的图形。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (27, 5, '第4章 引言', 4, '从三维推广到四维空间的动机:几何、计算与物理。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (27, 5, '第4章 引言', 4, '从三维推广到四维空间的动机:几何、计算与物理。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (28, 5, '第5章 四维空间', 5, '四维空间中的坐标轴、坐标平面与距离问题。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (28, 5, '第5章 四维空间', 5, '四维空间中的坐标轴、坐标平面与距离问题。', 0);
INSERT INTO chapters (id, textbook_id, name, position, summary, ebook_page) VALUES (29, 5, '第6章 四维方体', 6, '球与方体的定义、四维方体的结构与相关问题。', 0); INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (29, 5, '第6章 四维方体', 6, '球与方体的定义、四维方体的结构与相关问题。', 0);
-- knowledge: 44 行 -- knowledge: 44 行
INSERT INTO knowledge (id, name, domain, category, description) VALUES (1, '偶函数', '初等', '函数与图像', '满足 f(-x)=f(x) 的函数,其图像关于 y 轴对称。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (1, '偶函数', '初等', '函数与图像', '满足 f(-x)=f(x) 的函数,其图像关于 y 轴对称。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (2, '奇函数', '初等', '函数与图像', '满足 f(-x)=-f(x) 的函数,其图像关于原点中心对称;若 0 在定义域内,则 f(0)=0。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (2, '奇函数', '初等', '函数与图像', '满足 f(-x)=-f(x) 的函数,其图像关于原点中心对称;若 0 在定义域内,则 f(0)=0。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (3, '定义域', '初等', '函数与图像', '使函数表达式有意义的所有自变量取值组成的集合,常见限制有分母不为零、偶次根号下非负、对数的真数为正等。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (3, '定义域', '初等', '函数与图像', '使函数表达式有意义的所有自变量取值组成的集合,常见限制有分母不为零、偶次根号下非负、对数的真数为正等。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (4, '图像对称性', '初等', '函数与图像', '函数图像的轴对称与中心对称性质,与奇偶性、平移伸缩等变换密切相关。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (4, '图像对称性', '初等', '函数与图像', '函数图像的轴对称与中心对称性质,与奇偶性、平移伸缩等变换密切相关。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (5, '初等数学', '初等', '总纲', '中学与竞赛基础的数学知识总图'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (5, '初等数学', '初等', '总纲', '中学与竞赛基础的数学知识总图');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (6, '数与式', '初等', '数与式', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (6, '数与式', '初等', '数与式', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (7, '方程与不等式', '初等', '方程与不等式', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (7, '方程与不等式', '初等', '方程与不等式', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (8, '函数与图像', '初等', '函数与图像', '以图像直观呈现自变量与函数值对应关系的分支:先“看见”图像,再回到公式与性质。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (8, '函数与图像', '初等', '函数与图像', '以图像直观呈现自变量与函数值对应关系的分支:先“看见”图像,再回到公式与性质。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (9, '三角函数', '初等', '三角函数', '以角为自变量、以三角比为函数值的函数,包括正弦、余弦、正切等,具有周期性与有界性。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (9, '三角函数', '初等', '三角函数', '以角为自变量、以三角比为函数值的函数,包括正弦、余弦、正切等,具有周期性与有界性。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (10, '平面几何', '初等', '平面几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (10, '平面几何', '初等', '平面几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (11, '坐标与解析几何', '初等', '坐标与解析几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (11, '坐标与解析几何', '初等', '坐标与解析几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (12, '数列与证明', '初等', '数列与证明', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (12, '数列与证明', '初等', '数列与证明', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (13, '概率统计', '初等', '概率统计', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (13, '概率统计', '初等', '概率统计', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (14, '高等数学', '高等', '总纲', '大学基础数学知识总图'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (14, '高等数学', '高等', '总纲', '大学基础数学知识总图');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (15, '分析与微积分', '高等', '分析与微积分', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (15, '分析与微积分', '高等', '分析与微积分', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (16, '线性代数', '高等', '线性代数', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (16, '线性代数', '高等', '线性代数', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (17, '概率论与数理统计', '高等', '概率论与数理统计', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (17, '概率论与数理统计', '高等', '概率论与数理统计', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (18, '离散与优化', '高等', '离散与优化', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (18, '离散与优化', '高等', '离散与优化', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (19, '函数概念', '初等', '函数与图像', '设 x 取数集 D 中的值,若按确定的对应法则,每个 x 都有唯一确定的 y 与之对应,则称 y 是 x 的函数,记作 y=f(x),x∈D。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (19, '函数概念', '初等', '函数与图像', '设 x 取数集 D 中的值,若按确定的对应法则,每个 x 都有唯一确定的 y 与之对应,则称 y 是 x 的函数,记作 y=f(x),x∈D。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (20, '函数值', '初等', '函数与图像', '当自变量取定 x=a 时,按对应法则算出的 f(a) 就是函数在 a 处的函数值,它是图像上点 (a, f(a)) 的纵坐标。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (20, '函数值', '初等', '函数与图像', '当自变量取定 x=a 时,按对应法则算出的 f(a) 就是函数在 a 处的函数值,它是图像上点 (a, f(a)) 的纵坐标。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (21, '正负性', '初等', '函数与图像', '函数在区间上取正值或负值的性质,由 f(x)>0 与 f(x)<0 的解集刻画,对应图像位于 x 轴上方或下方。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (21, '正负性', '初等', '函数与图像', '函数在区间上取正值或负值的性质,由 f(x)>0 与 f(x)<0 的解集刻画,对应图像位于 x 轴上方或下方。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (22, '零点', '初等', '函数与图像', '使 f(x)=0 的自变量 x 的值,几何上对应函数图像与 x 轴交点的横坐标。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (22, '零点', '初等', '函数与图像', '使 f(x)=0 的自变量 x 的值,几何上对应函数图像与 x 轴交点的横坐标。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (23, '点线面的基本关系', '初等', '平面几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (23, '点线面的基本关系', '初等', '平面几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (24, '几何变换', '初等', '平面几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (24, '几何变换', '初等', '平面几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (25, '平行与垂直', '初等', '平面几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (25, '平行与垂直', '初等', '平面几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (26, '面积与周长', '初等', '平面几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (26, '面积与周长', '初等', '平面几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (27, '圆', '初等', '平面几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (27, '圆', '初等', '平面几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (28, '三角比', '初等', '三角函数', '直角三角形中边与边的比值(正弦、余弦、正切),并可借助单位圆推广到任意角。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (28, '三角比', '初等', '三角函数', '直角三角形中边与边的比值(正弦、余弦、正切),并可借助单位圆推广到任意角。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (30, '三角恒等式', '初等', '三角函数', '对定义域内任意角都成立的三角关系式,包括平方关系、和差角、倍角与半角公式等。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (30, '三角恒等式', '初等', '三角函数', '对定义域内任意角都成立的三角关系式,包括平方关系、和差角、倍角与半角公式等。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (32, '正弦定理', '初等', '三角函数', '在 △ABC 中 a/sinA = b/sinB = c/sinC = 2R(R 为外接圆半径),用于已知边角组合解三角形。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (32, '正弦定理', '初等', '三角函数', '在 △ABC 中 a/sinA = b/sinB = c/sinC = 2R(R 为外接圆半径),用于已知边角组合解三角形。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (33, '余弦定理', '初等', '三角函数', '在 △ABC 中 a²=b²+c²-2bc·cosA,用于已知两边及夹角或三边求解三角形。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (33, '余弦定理', '初等', '三角函数', '在 △ABC 中 a²=b²+c²-2bc·cosA,用于已知两边及夹角或三边求解三角形。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (34, '任意角', '初等', '三角函数', '由射线绕顶点旋转生成的角,按旋转方向分为正角、负角与零角,并用终边位置统一刻画。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (34, '任意角', '初等', '三角函数', '由射线绕顶点旋转生成的角,按旋转方向分为正角、负角与零角,并用终边位置统一刻画。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (35, '弧度制', '初等', '三角函数', '用弧长与半径之比度量角的大小,π 弧度 = 180°,使弧长与扇形面积公式的形式更简洁。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (35, '弧度制', '初等', '三角函数', '用弧长与半径之比度量角的大小,π 弧度 = 180°,使弧长与扇形面积公式的形式更简洁。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (39, '倍角公式', '初等', '三角函数', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (39, '倍角公式', '初等', '三角函数', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (40, '三角函数图像', '初等', '三角函数', '正弦、余弦、正切函数的图像及其周期、振幅、相位与图像变换规律。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (40, '三角函数图像', '初等', '三角函数', '正弦、余弦、正切函数的图像及其周期、振幅、相位与图像变换规律。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (42, '反三角函数', '初等', '三角函数', '三角函数在限定单调区间上的反函数,如反正弦 arcsin、反余弦 arccos、反正切 arctan。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (42, '反三角函数', '初等', '三角函数', '三角函数在限定单调区间上的反函数,如反正弦 arcsin、反余弦 arccos、反正切 arctan。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (43, '三角方程', '初等', '三角函数', '含有未知角的三角函数的方程,通常先化为基本三角方程,再结合周期性写出通解。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (43, '三角方程', '初等', '三角函数', '含有未知角的三角函数的方程,通常先化为基本三角方程,再结合周期性写出通解。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (44, '数轴', '初等', '坐标与解析几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (44, '数轴', '初等', '坐标与解析几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (45, '平面直角坐标系', '初等', '坐标与解析几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (45, '平面直角坐标系', '初等', '坐标与解析几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (46, '实数', '初等', '数与式', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (46, '实数', '初等', '数与式', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (47, '两点间距离', '初等', '坐标与解析几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (47, '两点间距离', '初等', '坐标与解析几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (48, '曲线与方程', '初等', '坐标与解析几何', ''); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (48, '曲线与方程', '初等', '坐标与解析几何', '');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (49, '同角三角函数关系', '初等', '三角函数', '同一个角的正弦、余弦、正切之间的基本关系,如 sin²α+cos²α=1、tanα=sinα/cosα。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (49, '同角三角函数关系', '初等', '三角函数', '同一个角的正弦、余弦、正切之间的基本关系,如 sin²α+cos²α=1、tanα=sinα/cosα。');
INSERT INTO knowledge (id, name, domain, category, description) VALUES (50, '和角与差角公式', '初等', '三角函数', '描述两角和或差的三角函数公式,如 sin(α±β)=sinαcosβ±cosαsinβ,是推导倍角公式的基础。'); INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (50, '和角与差角公式', '初等', '三角函数', '描述两角和或差的三角函数公式,如 sin(α±β)=sinαcosβ±cosαsinβ,是推导倍角公式的基础。');
-- chapter_knowledge: 44 行 -- chapter_knowledge: 44 行
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (1, 1, 19); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (1, 1, 19);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (2, 1, 20); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (2, 1, 20);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (3, 1, 3); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (3, 1, 3);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (4, 1, 21); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (4, 1, 21);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (5, 5, 22); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (5, 5, 22);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (6, 7, 1); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (6, 7, 1);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (7, 7, 2); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (7, 7, 2);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (8, 7, 4); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (8, 7, 4);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (9, 9, 23); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (9, 9, 23);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (10, 9, 24); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (10, 9, 24);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (11, 10, 25); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (11, 10, 25);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (12, 11, 26); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (12, 11, 26);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (13, 12, 27); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (13, 12, 27);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (14, 13, 9); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (14, 13, 9);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (15, 14, 28); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (15, 14, 28);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (17, 15, 30); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (17, 15, 30);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (19, 16, 32); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (19, 16, 32);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (20, 16, 33); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (20, 16, 33);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (21, 17, 34); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (21, 17, 34);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (22, 17, 35); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (22, 17, 35);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (23, 18, 35); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (23, 18, 35);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (27, 20, 39); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (27, 20, 39);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (28, 20, 30); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (28, 20, 30);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (29, 21, 40); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (29, 21, 40);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (31, 22, 42); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (31, 22, 42);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (32, 22, 43); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (32, 22, 43);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (33, 23, 44); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (33, 23, 44);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (34, 23, 45); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (34, 23, 45);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (35, 24, 44); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (35, 24, 44);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (36, 24, 46); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (36, 24, 46);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (37, 24, 47); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (37, 24, 47);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (38, 25, 45); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (38, 25, 45);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (39, 25, 47); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (39, 25, 47);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (40, 25, 48); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (40, 25, 48);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (41, 26, 45); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (41, 26, 45);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (42, 26, 23); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (42, 26, 23);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (43, 27, 45); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (43, 27, 45);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (44, 27, 48); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (44, 27, 48);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (45, 28, 45); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (45, 28, 45);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (46, 28, 48); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (46, 28, 48);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (47, 29, 45); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (47, 29, 45);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (48, 29, 48); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (48, 29, 48);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (49, 15, 49); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (49, 15, 49);
INSERT INTO chapter_knowledge (id, chapter_id, knowledge_id) VALUES (50, 19, 50); INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (50, 19, 50);
-- courses: 3 行 -- courses: 3 行
INSERT INTO courses (id, name, provider, url, grade, description, position) VALUES (1, 'Khan Academy · Algebra 1: Functions', 'Khan Academy', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', '初中衔接 / 高中', '函数单元含函数求值、定义域值域、函数图像与性质等大量免费练习,英文界面,适合配合盖尔范德丛书做自动化巩固。', 0); INSERT INTO "courses" ("id", "name", "provider", "url", "grade", "description", "position") VALUES (1, 'Khan Academy · Algebra 1: Functions', 'Khan Academy', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', '初中衔接 / 高中', '函数单元含函数求值、定义域值域、函数图像与性质等大量免费练习,英文界面,适合配合盖尔范德丛书做自动化巩固。', 0);
INSERT INTO courses (id, name, provider, url, grade, description, position) VALUES (2, '3Blue1Brown · Essence of Calculus', '3Blue1Brown', 'https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr', '高中高年级 / 大学先修', '微积分本质系列:从几何直觉理解导数与积分,适合函数图像直觉建立后进入微积分阶段使用。', 1); INSERT INTO "courses" ("id", "name", "provider", "url", "grade", "description", "position") VALUES (2, '3Blue1Brown · Essence of Calculus', '3Blue1Brown', 'https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr', '高中高年级 / 大学先修', '微积分本质系列:从几何直觉理解导数与积分,适合函数图像直觉建立后进入微积分阶段使用。', 1);
INSERT INTO courses (id, name, provider, url, grade, description, position) VALUES (3, '国家中小学智慧教育平台 · 高中数学(人教A版)', '教育部教育技术与资源发展中心', 'https://basic.smartedu.cn/syncClassroom', '高中全学段', '官方免费同步课程与配套课件,可按教材版本与册次点播,适合做课内进度对照。', 2); INSERT INTO "courses" ("id", "name", "provider", "url", "grade", "description", "position") VALUES (3, '国家中小学智慧教育平台 · 高中数学(人教A版)', '教育部教育技术与资源发展中心', 'https://basic.smartedu.cn/syncClassroom', '高中全学段', '官方免费同步课程与配套课件,可按教材版本与册次点播,适合做课内进度对照。', 2);
-- knowledge_relations: 12 行 -- knowledge_relations: 12 行
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (1, 1, 2, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (1, 1, 2, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (2, 8, 9, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (2, 8, 9, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (3, 19, 3, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (3, 19, 3, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (4, 19, 20, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (4, 19, 20, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (5, 19, 1, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (5, 19, 1, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (6, 19, 2, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (6, 19, 2, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (7, 3, 22, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (7, 3, 22, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (8, 28, 34, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (8, 28, 34, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (9, 34, 35, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (9, 34, 35, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (10, 35, 40, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (10, 35, 40, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (11, 50, 39, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (11, 50, 39, '前置');
INSERT INTO knowledge_relations (id, source_id, target_id, relation_type) VALUES (12, 39, 30, '前置'); INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (12, 39, 30, '前置');
-- knowledge_resources: 16 行 -- knowledge_resources: 16 行
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (1, 3, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (1, 3, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (2, 1, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (2, 1, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (3, 2, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (3, 2, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (4, 4, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (4, 4, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (5, 8, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (5, 8, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (6, 9, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (6, 9, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (7, 19, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (7, 19, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (8, 20, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (8, 20, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (9, 22, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (9, 22, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (10, 34, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (10, 34, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (11, 35, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (11, 35, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (12, 28, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (12, 28, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (13, 30, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (13, 30, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (14, 40, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (14, 40, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (15, 49, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (15, 49, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO knowledge_resources (id, knowledge_id, kind, title, url, textbook_id, course_id, position) VALUES (16, 50, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0); INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (16, 50, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
-- questions: 18 行 -- questions: 18 行
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (1, 'bank', '已知函数 f(x) 满足 f(-x)=f(x),且 f(3)=5。下列哪个点一定在图像上?', '["A. (-3,5)", "B. (-3,-5)", "C. (3,-5)", "D. (5,-3)"]', 0, '偶函数', '由偶函数定义 f(-x)=f(x) 可知,点 (3,5) 关于 y 轴的镜像点 (-3,5) 一定在图像上。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (1, 'bank', '已知函数 f(x) 满足 f(-x)=f(x),且 f(3)=5。下列哪个点一定在图像上?', '["A. (-3,5)", "B. (-3,-5)", "C. (3,-5)", "D. (5,-3)"]', 0, '偶函数', '由偶函数定义 f(-x)=f(x) 可知,点 (3,5) 关于 y 轴的镜像点 (-3,5) 一定在图像上。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (2, 'bank', '已知函数 f(x) 满足 f(-x)=-f(x),且 f(2)=4。下列哪个点一定在图像上?', '["A. (-2,4)", "B. (-2,-4)", "C. (2,-4)", "D. (4,-2)"]', 1, '奇函数', '由奇函数定义 f(-x)=-f(x) 可知,(2,4) 关于原点的对称点 (-2,-4) 一定在图像上。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (2, 'bank', '已知函数 f(x) 满足 f(-x)=-f(x),且 f(2)=4。下列哪个点一定在图像上?', '["A. (-2,4)", "B. (-2,-4)", "C. (2,-4)", "D. (4,-2)"]', 1, '奇函数', '由奇函数定义 f(-x)=-f(x) 可知,(2,4) 关于原点的对称点 (-2,-4) 一定在图像上。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (3, 'bank', '下列函数的图像关于 $y$ 轴对称的是?', '["A. $y=x+1$", "B. $y=x^3$", "C. $y=x^2+2$", "D. $y=x^2+x$"]', 2, '偶函数', '$y=x^2+2$ 满足 $f(-x)=f(x)$,因此图像关于 $y$ 轴对称,属于偶函数。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (3, 'bank', '下列函数的图像关于 $y$ 轴对称的是?', '["A. $y=x+1$", "B. $y=x^3$", "C. $y=x^2+2$", "D. $y=x^2+x$"]', 2, '偶函数', '$y=x^2+2$ 满足 $f(-x)=f(x)$,因此图像关于 $y$ 轴对称,属于偶函数。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (4, 'bank', '函数 y=1/(x²-9) 的图像不可能经过哪个点?', '["A. (0,-1/9)", "B. (4,1/7)", "C. (-4,1/7)", "D. (3,1)"]', 3, '定义域', '分母 x²-9 不能为 0,x=±3 不在定义域内,所以图像不可能经过 (3,1)。', 1, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (4, 'bank', '函数 y=1/(x²-9) 的图像不可能经过哪个点?', '["A. (0,-1/9)", "B. (4,1/7)", "C. (-4,1/7)", "D. (3,1)"]', 3, '定义域', '分母 x²-9 不能为 0,x=±3 不在定义域内,所以图像不可能经过 (3,1)。', 1, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (5, 'bank', '若函数图像关于原点对称,则下列关系一定成立的是?', '["A. f(-x)=f(x)", "B. f(-x)=-f(x)", "C. f(x)=0", "D. f(x)>0"]', 1, '奇函数', '图像关于原点对称对应奇函数,即对任意定义域内的 x 有 f(-x)=-f(x)。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (5, 'bank', '若函数图像关于原点对称,则下列关系一定成立的是?', '["A. f(-x)=f(x)", "B. f(-x)=-f(x)", "C. f(x)=0", "D. f(x)>0"]', 1, '奇函数', '图像关于原点对称对应奇函数,即对任意定义域内的 x 有 f(-x)=-f(x)。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (6, 'bank', '已知 $f(-x)=f(x)$,则函数图像的几何性质是?', '["A. 关于 x 轴对称", "B. 关于 y 轴对称", "C. 关于原点对称", "D. 无法判断"]', 1, '偶函数', 'f(-x)=f(x) 是偶函数的定义式,几何上等价于图像关于 y 轴对称。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (6, 'bank', '已知 $f(-x)=f(x)$,则函数图像的几何性质是?', '["A. 关于 x 轴对称", "B. 关于 y 轴对称", "C. 关于原点对称", "D. 无法判断"]', 1, '偶函数', 'f(-x)=f(x) 是偶函数的定义式,几何上等价于图像关于 y 轴对称。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (7, 'bank', '函数 y=2/(x²-1) 的图像不可能经过哪个点?', '["A. (0,-2)", "B. (2,2/3)", "C. (-2,2/3)", "D. (1,2)"]', 3, '定义域', '分母 x²-1 不能为 0,x=±1 不在定义域内,所以图像不可能经过 (1,2)。', 1, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (7, 'bank', '函数 y=2/(x²-1) 的图像不可能经过哪个点?', '["A. (0,-2)", "B. (2,2/3)", "C. (-2,2/3)", "D. (1,2)"]', 3, '定义域', '分母 x²-1 不能为 0,x=±1 不在定义域内,所以图像不可能经过 (1,2)。', 1, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (8, 'bank', '若 f(-x)=-f(x),且图像经过 (5,-2),则一定经过?', '["A. (-5,-2)", "B. (-5,2)", "C. (5,2)", "D. (2,5)"]', 1, '奇函数', '奇函数图像关于原点对称,(5,-2) 关于原点的对称点是 (-5,2)。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (8, 'bank', '若 f(-x)=-f(x),且图像经过 (5,-2),则一定经过?', '["A. (-5,-2)", "B. (-5,2)", "C. (5,2)", "D. (2,5)"]', 1, '奇函数', '奇函数图像关于原点对称,(5,-2) 关于原点的对称点是 (-5,2)。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (9, 'bank', '若 f(-x)=f(x),且图像经过 (4,7),则下列点一定在图像上的是?', '["(-4,7)", "(-4,-7)", "(4,-7)", "(7,4)"]', 0, '偶函数', '由偶函数定义得到关于 y 轴的镜像点。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (9, 'bank', '若 f(-x)=f(x),且图像经过 (4,7),则下列点一定在图像上的是?', '["(-4,7)", "(-4,-7)", "(4,-7)", "(7,4)"]', 0, '偶函数', '由偶函数定义得到关于 y 轴的镜像点。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (10, 'bank', '若 f(-x)=-f(x),且图像经过 (3,5),则下列点一定在图像上的是?', '["(-3,5)", "(-3,-5)", "(3,-5)", "(5,3)"]', 1, '奇函数', '由奇函数定义得到关于原点的对称点。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (10, 'bank', '若 f(-x)=-f(x),且图像经过 (3,5),则下列点一定在图像上的是?', '["(-3,5)", "(-3,-5)", "(3,-5)", "(5,3)"]', 1, '奇函数', '由奇函数定义得到关于原点的对称点。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (11, 'bank', '下列函数中属于偶函数的是?', '["$y=x^3$", "$y=x^2+1$", "$y=x+1$", "$y=x^3+x$"]', 1, '偶函数', '代入 $-x$ 检验 $f(-x)=f(x)$。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (11, 'bank', '下列函数中属于偶函数的是?', '["$y=x^3$", "$y=x^2+1$", "$y=x+1$", "$y=x^3+x$"]', 1, '偶函数', '代入 $-x$ 检验 $f(-x)=f(x)$。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (12, 'bank', '下列函数中属于奇函数的是?', '["y=x²", "y=x^3", "y=x²+1", "y=x^3+1"]', 1, '奇函数', '代入 -x 检验 f(-x)=-f(x)。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (12, 'bank', '下列函数中属于奇函数的是?', '["y=x²", "y=x^3", "y=x²+1", "y=x^3+1"]', 1, '奇函数', '代入 -x 检验 f(-x)=-f(x)。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (13, 'bank', '函数 y=1/(x-2) 的图像不可能经过哪个点?', '["(0,-1/2)", "(3,1)", "(2,0)", "(4,1/2)"]', 2, '定义域', '分母不能为 0,因此 x=2 不属于定义域。', 1, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (13, 'bank', '函数 y=1/(x-2) 的图像不可能经过哪个点?', '["(0,-1/2)", "(3,1)", "(2,0)", "(4,1/2)"]', 2, '定义域', '分母不能为 0,因此 x=2 不属于定义域。', 1, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (14, 'bank', '若一个函数图像关于 y 轴对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=0", "f(x)>0"]', 0, '图像对称性', '关于 y 轴对称对应偶函数。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (14, 'bank', '若一个函数图像关于 y 轴对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=0", "f(x)>0"]', 0, '图像对称性', '关于 y 轴对称对应偶函数。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (15, 'bank', '若一个函数图像关于原点对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=1", "f(x)>0"]', 1, '图像对称性', '关于原点对称对应奇函数。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (15, 'bank', '若一个函数图像关于原点对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=1", "f(x)>0"]', 1, '图像对称性', '关于原点对称对应奇函数。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (16, 'bank', '若 f(x) 是偶函数,且 f(-5)=9,则 f(5)=?', '["-9", "0", "9", "无法确定"]', 2, '偶函数', '偶函数的两个对称自变量对应相同函数值。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (16, 'bank', '若 f(x) 是偶函数,且 f(-5)=9,则 f(5)=?', '["-9", "0", "9", "无法确定"]', 2, '偶函数', '偶函数的两个对称自变量对应相同函数值。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (17, 'bank', '若 f(x) 是奇函数,且 f(-6)=4,则 f(6)=?', '["4", "-4", "0", "无法确定"]', 1, '奇函数', '奇函数的两个相反自变量对应相反函数值。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (17, 'bank', '若 f(x) 是奇函数,且 f(-6)=4,则 f(6)=?', '["4", "-4", "0", "无法确定"]', 1, '奇函数', '奇函数的两个相反自变量对应相反函数值。', 7, 1, 0, 1);
INSERT INTO questions (id, source, stem, options, correct_index, knowledge_name, explanation, chapter_id, difficulty, is_generated, used_count) VALUES (18, 'bank', '判断函数 y=x⁴-x² 的奇偶性。', '["偶函数", "奇函数", "既奇又偶", "非奇非偶"]', 0, '偶函数', '偶次幂组成,代入 -x 后表达式不变。', 7, 1, 0, 1); INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (18, 'bank', '判断函数 y=x⁴-x² 的奇偶性。', '["偶函数", "奇函数", "既奇又偶", "非奇非偶"]', 0, '偶函数', '偶次幂组成,代入 -x 后表达式不变。', 7, 1, 0, 1);
-- question_knowledge: 18 行 -- question_knowledge: 18 行
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (1, 1, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (1, 1, 1);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (2, 2, 2); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (2, 2, 2);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (3, 3, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (3, 3, 1);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (4, 4, 3); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (4, 4, 3);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (5, 5, 2); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (5, 5, 2);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (6, 6, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (6, 6, 1);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (7, 7, 3); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (7, 7, 3);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (8, 8, 2); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (8, 8, 2);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (9, 9, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (9, 9, 1);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (10, 10, 2); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (10, 10, 2);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (11, 11, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (11, 11, 1);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (12, 12, 2); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (12, 12, 2);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (13, 13, 3); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (13, 13, 3);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (14, 14, 4); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (14, 14, 4);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (15, 15, 4); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (15, 15, 4);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (16, 16, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (16, 16, 1);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (17, 17, 2); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (17, 17, 2);
INSERT INTO question_knowledge (id, question_id, knowledge_id) VALUES (18, 18, 1); INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (18, 18, 1);
COMMIT; COMMIT;
VACUUM; VACUUM;

285
data/dump/full.sql 100644
View File

@ -0,0 +1,285 @@
-- nex_math 内容快照(教材 / 章节 / 知识点 / 课程 / 题库)
-- 生成时间:2026-09-18T17:35:08
-- 恢复:./scripts/db.sh load data/dump/full.sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
DELETE FROM "ebook_progress";
DELETE FROM "daily_completions";
DELETE FROM "error_entries";
DELETE FROM "attempt_items";
DELETE FROM "attempt_sessions";
DELETE FROM "user_knowledge";
DELETE FROM "user_roles";
DELETE FROM "role_permissions";
DELETE FROM "permissions";
DELETE FROM "roles";
DELETE FROM "users";
DELETE FROM "question_knowledge";
DELETE FROM "questions";
DELETE FROM "knowledge_resources";
DELETE FROM "knowledge_relations";
DELETE FROM "courses";
DELETE FROM "chapter_knowledge";
DELETE FROM "knowledge";
DELETE FROM "chapters";
DELETE FROM "textbooks";
-- textbooks: 7 行
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (1, '函数和图像(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, E. G. Glagoleva, E. E. Shnol 著;麻希南、胡长青 译', '中国科学技术大学出版社', '9787312050053', '2020年12月第1版', '初中至高中低年级', '', '本系统的主教材。以大量真实图像(地震图、心电图等)引入函数,强调“画图就是看见公式”,系统训练函数概念、图像与性质直觉;英译本 Functions and Graphs 由 Dover 出版。现有函数与对称性题库以本书为依据。', 0, 'da4d4ff2d0b0448fac3719cb7d536d5b.pdf', '函数和图像(盖尔范德中学生数学思维丛书).pdf', 'pdf', 2352775, 108, '2026-09-18 05:52:20.133460');
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (2, '代数(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, A. Shen 著;胡长青、麻希南 译', '中国科学技术大学出版社', '9787312048937', '2020年第1版', '初中至高中低年级', '', '用问题驱动的叙述串联自然数、负数、代数式与方程,重视“为什么可以这样变形”的代数思维,适合作为代数学基础。', 1, '', '', '', 0, 0, NULL);
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (3, '几何(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand 等 著', '中国科学技术大学出版社', '9787312057793', '2023年第1版', '初中至高中低年级', '', '以直观可视的方式从图形构造逐步建立几何,突出“先看见、再证明”的思维路线。', 2, '', '', '', 0, 0, NULL);
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (4, '三角函数(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, M. Saul 著;王作勤 译', '中国科学技术大学出版社', '9787312046957', '2020年第1版', '初中至高中低年级', '', '从初等几何直觉进入正弦、余弦与正切,解释周期与波动现象的数学本质。', 3, 'c1945315d608455eb429eacc3378d7d5.pdf', '三角函数(盖尔范德中学生数学思维丛书).pdf', 'pdf', 4804517, 228, '2026-09-18 05:52:20.155476');
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (5, '坐标方法(盖尔范德中学生数学思维丛书)', 'I. M. Gelfand, E. G. Glagoleva, A. A. Kirillov 著;王作勤 译', '中国科学技术大学出版社', '9787312050060', '2020年12月第1版', '初中至高中低年级', '', '讲解如何用坐标把几何问题转化为代数问题,是解析几何与函数图像方法的基础。', 4, '', '', '', 0, 0, NULL);
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (6, '普林斯顿微积分读本(修订版)', '阿德里安·班纳 (Adrian Banner)', '人民邮电出版社', '', '', '高中至大学先修', '', '面向微积分入门的系统辅导书,覆盖极限、导数、积分与级数,按考点组织,适合自学与考前查漏补缺。', 5, '4559e9e2fa084fb7a8e8a06aea5196bc.epub', '普林斯顿微积分读本(修订版).epub', 'epub', 9842024, 190, '2026-09-18 05:52:20.122225');
INSERT INTO "textbooks" ("id", "name", "author", "publisher", "isbn", "edition", "grade", "link", "description", "position", "ebook_file", "ebook_name", "ebook_format", "ebook_size", "ebook_pages", "ebook_uploaded_at") VALUES (7, '柯西-施瓦茨大师课:不等式的艺术', 'J. Michael Steele 著;欧阳顺湘 译', '高等教育出版社 · 世界数学精品译丛 7', '9787040278678', '', '高中至大学', '', 'Cambridge 出版的不等式专题大师课:以 Cauchy-Schwarz 不等式为主线,串起凸性、排序、切比雪夫、Young、Hölder、Minkowski 等常用不等式,每章配大量例题与习题,适合竞赛与数学分析进阶训练。', 6, '8dc7e48036ac4db8abf0020334b47b07.pdf', '柯西-施瓦茨大师课:不等式的艺术.pdf', 'pdf', 44110741, 268, '2026-09-18 06:44:14.147181');
-- chapters: 29 行
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (1, 1, '引言', 0, '函数、自变量、定义域与函数值:从真实图像理解函数。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (2, 1, '第1章 例子', 1, '不同函数图像的直观例子与作图方法。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (3, 1, '第2章 线性函数', 2, '一次函数的图像、斜率与直线。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (4, 1, '第3章 函数 y=|x|', 3, '绝对值函数的图像与性质,关于 y 轴对称的典型例子。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (5, 1, '第4章 二次三项式', 4, '二次函数图像、配方、判别式与零点。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (6, 1, '第5章 分式线性函数', 5, 'y=1/x 类函数图像与渐近行为。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (7, 1, '第6章 幂函数', 6, 'y=x、y=x²、y=x³ 等幂函数的奇偶性与对称性。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (8, 1, '第7章 有理函数', 7, '更一般的有理函数图像与性质综合。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (9, 3, '点与直线:走进射影几何', 0, '从点与直线的位置关系出发理解射影几何的基本思想。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (10, 3, '平行线:走进仿射几何', 1, '以平行关系为线索建立仿射几何的直观框架。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (11, 3, '面积:走进辛几何', 2, '通过面积概念与保持面积变换认识辛几何。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (12, 3, '圆:走进欧氏几何', 3, '以圆为核心回到经典欧氏几何的结构与性质。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (13, 4, '第1章 三角函数', 0, '从角与旋转进入三角函数,建立正弦、余弦、正切的基本概念。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (14, 4, '第2章 三角形中的三角比', 1, '在直角三角形中定义正弦、余弦与正切,理解锐角三角比。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (15, 4, '第3章 三角比之间的关系', 2, '同角三角比的关系、互余关系与基本恒等式推导。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (16, 4, '第4章 三角形内的关系', 3, '正弦定理、余弦定理以及三角形中边角关系的应用。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (17, 4, '第5章 角与旋转', 4, '把角推广到任意旋转角,定义任意角的三角函数。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (18, 4, '第6章 弧度法', 5, '引入弧度制,理解弧长、扇形与角度制换算。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (19, 4, '第7章 加法公式', 6, '两角和与差的三角函数公式及其几何与代数证明。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (20, 4, '第8章 三角恒等式', 7, '倍角、半角与和差化积等常用三角恒等式。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (21, 4, '第9章 三角函数的图形', 8, '正弦、余弦、正切函数的图像、周期与变换。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (22, 4, '第10章 反函数与三角方程', 9, '反三角函数的基本概念与三角方程的求解方法。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (23, 5, '绪论', 0, '用坐标把几何问题转化为代数问题的方法引言。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (24, 5, '第1章 直线上点的坐标', 1, '数轴、数的绝对值与两点之间的距离。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (25, 5, '第2章 平面里点的坐标', 2, '坐标平面、坐标间关系、距离公式、确定平面图形与其他坐标系。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (26, 5, '第3章 三维空间里点的坐标', 3, '空间坐标轴与坐标平面,确定空间中的图形。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (27, 5, '第4章 引言', 4, '从三维推广到四维空间的动机:几何、计算与物理。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (28, 5, '第5章 四维空间', 5, '四维空间中的坐标轴、坐标平面与距离问题。', 0);
INSERT INTO "chapters" ("id", "textbook_id", "name", "position", "summary", "ebook_page") VALUES (29, 5, '第6章 四维方体', 6, '球与方体的定义、四维方体的结构与相关问题。', 0);
-- knowledge: 44 行
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (1, '偶函数', '初等', '函数与图像', '满足 f(-x)=f(x) 的函数,其图像关于 y 轴对称。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (2, '奇函数', '初等', '函数与图像', '满足 f(-x)=-f(x) 的函数,其图像关于原点中心对称;若 0 在定义域内,则 f(0)=0。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (3, '定义域', '初等', '函数与图像', '使函数表达式有意义的所有自变量取值组成的集合,常见限制有分母不为零、偶次根号下非负、对数的真数为正等。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (4, '图像对称性', '初等', '函数与图像', '函数图像的轴对称与中心对称性质,与奇偶性、平移伸缩等变换密切相关。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (5, '初等数学', '初等', '总纲', '中学与竞赛基础的数学知识总图');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (6, '数与式', '初等', '数与式', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (7, '方程与不等式', '初等', '方程与不等式', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (8, '函数与图像', '初等', '函数与图像', '以图像直观呈现自变量与函数值对应关系的分支:先“看见”图像,再回到公式与性质。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (9, '三角函数', '初等', '三角函数', '以角为自变量、以三角比为函数值的函数,包括正弦、余弦、正切等,具有周期性与有界性。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (10, '平面几何', '初等', '平面几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (11, '坐标与解析几何', '初等', '坐标与解析几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (12, '数列与证明', '初等', '数列与证明', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (13, '概率统计', '初等', '概率统计', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (14, '高等数学', '高等', '总纲', '大学基础数学知识总图');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (15, '分析与微积分', '高等', '分析与微积分', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (16, '线性代数', '高等', '线性代数', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (17, '概率论与数理统计', '高等', '概率论与数理统计', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (18, '离散与优化', '高等', '离散与优化', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (19, '函数概念', '初等', '函数与图像', '设 x 取数集 D 中的值,若按确定的对应法则,每个 x 都有唯一确定的 y 与之对应,则称 y 是 x 的函数,记作 y=f(x),x∈D。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (20, '函数值', '初等', '函数与图像', '当自变量取定 x=a 时,按对应法则算出的 f(a) 就是函数在 a 处的函数值,它是图像上点 (a, f(a)) 的纵坐标。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (21, '正负性', '初等', '函数与图像', '函数在区间上取正值或负值的性质,由 f(x)>0 与 f(x)<0 的解集刻画,对应图像位于 x 轴上方或下方。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (22, '零点', '初等', '函数与图像', '使 f(x)=0 的自变量 x 的值,几何上对应函数图像与 x 轴交点的横坐标。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (23, '点线面的基本关系', '初等', '平面几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (24, '几何变换', '初等', '平面几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (25, '平行与垂直', '初等', '平面几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (26, '面积与周长', '初等', '平面几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (27, '圆', '初等', '平面几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (28, '三角比', '初等', '三角函数', '直角三角形中边与边的比值(正弦、余弦、正切),并可借助单位圆推广到任意角。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (30, '三角恒等式', '初等', '三角函数', '对定义域内任意角都成立的三角关系式,包括平方关系、和差角、倍角与半角公式等。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (32, '正弦定理', '初等', '三角函数', '在 △ABC 中 a/sinA = b/sinB = c/sinC = 2R(R 为外接圆半径),用于已知边角组合解三角形。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (33, '余弦定理', '初等', '三角函数', '在 △ABC 中 a²=b²+c²-2bc·cosA,用于已知两边及夹角或三边求解三角形。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (34, '任意角', '初等', '三角函数', '由射线绕顶点旋转生成的角,按旋转方向分为正角、负角与零角,并用终边位置统一刻画。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (35, '弧度制', '初等', '三角函数', '用弧长与半径之比度量角的大小,π 弧度 = 180°,使弧长与扇形面积公式的形式更简洁。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (39, '倍角公式', '初等', '三角函数', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (40, '三角函数图像', '初等', '三角函数', '正弦、余弦、正切函数的图像及其周期、振幅、相位与图像变换规律。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (42, '反三角函数', '初等', '三角函数', '三角函数在限定单调区间上的反函数,如反正弦 arcsin、反余弦 arccos、反正切 arctan。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (43, '三角方程', '初等', '三角函数', '含有未知角的三角函数的方程,通常先化为基本三角方程,再结合周期性写出通解。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (44, '数轴', '初等', '坐标与解析几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (45, '平面直角坐标系', '初等', '坐标与解析几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (46, '实数', '初等', '数与式', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (47, '两点间距离', '初等', '坐标与解析几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (48, '曲线与方程', '初等', '坐标与解析几何', '');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (49, '同角三角函数关系', '初等', '三角函数', '同一个角的正弦、余弦、正切之间的基本关系,如 sin²α+cos²α=1、tanα=sinα/cosα。');
INSERT INTO "knowledge" ("id", "name", "domain", "category", "description") VALUES (50, '和角与差角公式', '初等', '三角函数', '描述两角和或差的三角函数公式,如 sin(α±β)=sinαcosβ±cosαsinβ,是推导倍角公式的基础。');
-- chapter_knowledge: 44 行
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (1, 1, 19);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (2, 1, 20);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (3, 1, 3);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (4, 1, 21);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (5, 5, 22);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (6, 7, 1);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (7, 7, 2);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (8, 7, 4);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (9, 9, 23);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (10, 9, 24);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (11, 10, 25);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (12, 11, 26);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (13, 12, 27);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (14, 13, 9);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (15, 14, 28);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (17, 15, 30);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (19, 16, 32);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (20, 16, 33);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (21, 17, 34);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (22, 17, 35);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (23, 18, 35);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (27, 20, 39);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (28, 20, 30);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (29, 21, 40);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (31, 22, 42);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (32, 22, 43);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (33, 23, 44);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (34, 23, 45);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (35, 24, 44);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (36, 24, 46);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (37, 24, 47);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (38, 25, 45);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (39, 25, 47);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (40, 25, 48);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (41, 26, 45);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (42, 26, 23);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (43, 27, 45);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (44, 27, 48);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (45, 28, 45);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (46, 28, 48);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (47, 29, 45);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (48, 29, 48);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (49, 15, 49);
INSERT INTO "chapter_knowledge" ("id", "chapter_id", "knowledge_id") VALUES (50, 19, 50);
-- courses: 3 行
INSERT INTO "courses" ("id", "name", "provider", "url", "grade", "description", "position") VALUES (1, 'Khan Academy · Algebra 1: Functions', 'Khan Academy', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', '初中衔接 / 高中', '函数单元含函数求值、定义域值域、函数图像与性质等大量免费练习,英文界面,适合配合盖尔范德丛书做自动化巩固。', 0);
INSERT INTO "courses" ("id", "name", "provider", "url", "grade", "description", "position") VALUES (2, '3Blue1Brown · Essence of Calculus', '3Blue1Brown', 'https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr', '高中高年级 / 大学先修', '微积分本质系列:从几何直觉理解导数与积分,适合函数图像直觉建立后进入微积分阶段使用。', 1);
INSERT INTO "courses" ("id", "name", "provider", "url", "grade", "description", "position") VALUES (3, '国家中小学智慧教育平台 · 高中数学(人教A版)', '教育部教育技术与资源发展中心', 'https://basic.smartedu.cn/syncClassroom', '高中全学段', '官方免费同步课程与配套课件,可按教材版本与册次点播,适合做课内进度对照。', 2);
-- knowledge_relations: 12 行
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (1, 1, 2, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (2, 8, 9, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (3, 19, 3, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (4, 19, 20, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (5, 19, 1, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (6, 19, 2, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (7, 3, 22, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (8, 28, 34, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (9, 34, 35, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (10, 35, 40, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (11, 50, 39, '前置');
INSERT INTO "knowledge_relations" ("id", "source_id", "target_id", "relation_type") VALUES (12, 39, 30, '前置');
-- knowledge_resources: 16 行
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (1, 3, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (2, 1, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (3, 2, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (4, 4, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (5, 8, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (6, 9, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (7, 19, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (8, 20, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (9, 22, 'video', 'Khan Academy · Algebra 1: Functions', 'https://www.khanacademy.org/math/algebra/x2f8bb11595b61c86:functions', NULL, 1, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (10, 34, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (11, 35, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (12, 28, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (13, 30, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (14, 40, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (15, 49, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
INSERT INTO "knowledge_resources" ("id", "knowledge_id", "kind", "title", "url", "textbook_id", "course_id", "position") VALUES (16, 50, 'video', '国家中小学智慧教育平台 · 高中数学(人教A版)', 'https://basic.smartedu.cn/syncClassroom', NULL, 3, 0);
-- questions: 18 行
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (1, 'bank', '已知函数 f(x) 满足 f(-x)=f(x),且 f(3)=5。下列哪个点一定在图像上?', '["A. (-3,5)", "B. (-3,-5)", "C. (3,-5)", "D. (5,-3)"]', 0, '偶函数', '由偶函数定义 f(-x)=f(x) 可知,点 (3,5) 关于 y 轴的镜像点 (-3,5) 一定在图像上。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (2, 'bank', '已知函数 f(x) 满足 f(-x)=-f(x),且 f(2)=4。下列哪个点一定在图像上?', '["A. (-2,4)", "B. (-2,-4)", "C. (2,-4)", "D. (4,-2)"]', 1, '奇函数', '由奇函数定义 f(-x)=-f(x) 可知,(2,4) 关于原点的对称点 (-2,-4) 一定在图像上。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (3, 'bank', '下列函数的图像关于 $y$ 轴对称的是?', '["A. $y=x+1$", "B. $y=x^3$", "C. $y=x^2+2$", "D. $y=x^2+x$"]', 2, '偶函数', '$y=x^2+2$ 满足 $f(-x)=f(x)$,因此图像关于 $y$ 轴对称,属于偶函数。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (4, 'bank', '函数 y=1/(x²-9) 的图像不可能经过哪个点?', '["A. (0,-1/9)", "B. (4,1/7)", "C. (-4,1/7)", "D. (3,1)"]', 3, '定义域', '分母 x²-9 不能为 0,x=±3 不在定义域内,所以图像不可能经过 (3,1)。', 1, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (5, 'bank', '若函数图像关于原点对称,则下列关系一定成立的是?', '["A. f(-x)=f(x)", "B. f(-x)=-f(x)", "C. f(x)=0", "D. f(x)>0"]', 1, '奇函数', '图像关于原点对称对应奇函数,即对任意定义域内的 x 有 f(-x)=-f(x)。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (6, 'bank', '已知 $f(-x)=f(x)$,则函数图像的几何性质是?', '["A. 关于 x 轴对称", "B. 关于 y 轴对称", "C. 关于原点对称", "D. 无法判断"]', 1, '偶函数', 'f(-x)=f(x) 是偶函数的定义式,几何上等价于图像关于 y 轴对称。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (7, 'bank', '函数 y=2/(x²-1) 的图像不可能经过哪个点?', '["A. (0,-2)", "B. (2,2/3)", "C. (-2,2/3)", "D. (1,2)"]', 3, '定义域', '分母 x²-1 不能为 0,x=±1 不在定义域内,所以图像不可能经过 (1,2)。', 1, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (8, 'bank', '若 f(-x)=-f(x),且图像经过 (5,-2),则一定经过?', '["A. (-5,-2)", "B. (-5,2)", "C. (5,2)", "D. (2,5)"]', 1, '奇函数', '奇函数图像关于原点对称,(5,-2) 关于原点的对称点是 (-5,2)。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (9, 'bank', '若 f(-x)=f(x),且图像经过 (4,7),则下列点一定在图像上的是?', '["(-4,7)", "(-4,-7)", "(4,-7)", "(7,4)"]', 0, '偶函数', '由偶函数定义得到关于 y 轴的镜像点。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (10, 'bank', '若 f(-x)=-f(x),且图像经过 (3,5),则下列点一定在图像上的是?', '["(-3,5)", "(-3,-5)", "(3,-5)", "(5,3)"]', 1, '奇函数', '由奇函数定义得到关于原点的对称点。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (11, 'bank', '下列函数中属于偶函数的是?', '["$y=x^3$", "$y=x^2+1$", "$y=x+1$", "$y=x^3+x$"]', 1, '偶函数', '代入 $-x$ 检验 $f(-x)=f(x)$。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (12, 'bank', '下列函数中属于奇函数的是?', '["y=x²", "y=x^3", "y=x²+1", "y=x^3+1"]', 1, '奇函数', '代入 -x 检验 f(-x)=-f(x)。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (13, 'bank', '函数 y=1/(x-2) 的图像不可能经过哪个点?', '["(0,-1/2)", "(3,1)", "(2,0)", "(4,1/2)"]', 2, '定义域', '分母不能为 0,因此 x=2 不属于定义域。', 1, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (14, 'bank', '若一个函数图像关于 y 轴对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=0", "f(x)>0"]', 0, '图像对称性', '关于 y 轴对称对应偶函数。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (15, 'bank', '若一个函数图像关于原点对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=1", "f(x)>0"]', 1, '图像对称性', '关于原点对称对应奇函数。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (16, 'bank', '若 f(x) 是偶函数,且 f(-5)=9,则 f(5)=?', '["-9", "0", "9", "无法确定"]', 2, '偶函数', '偶函数的两个对称自变量对应相同函数值。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (17, 'bank', '若 f(x) 是奇函数,且 f(-6)=4,则 f(6)=?', '["4", "-4", "0", "无法确定"]', 1, '奇函数', '奇函数的两个相反自变量对应相反函数值。', 7, 1, 0, 1);
INSERT INTO "questions" ("id", "source", "stem", "options", "correct_index", "knowledge_name", "explanation", "chapter_id", "difficulty", "is_generated", "used_count") VALUES (18, 'bank', '判断函数 y=x⁴-x² 的奇偶性。', '["偶函数", "奇函数", "既奇又偶", "非奇非偶"]', 0, '偶函数', '偶次幂组成,代入 -x 后表达式不变。', 7, 1, 0, 1);
-- question_knowledge: 18 行
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (1, 1, 1);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (2, 2, 2);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (3, 3, 1);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (4, 4, 3);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (5, 5, 2);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (6, 6, 1);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (7, 7, 3);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (8, 8, 2);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (9, 9, 1);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (10, 10, 2);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (11, 11, 1);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (12, 12, 2);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (13, 13, 3);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (14, 14, 4);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (15, 15, 4);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (16, 16, 1);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (17, 17, 2);
INSERT INTO "question_knowledge" ("id", "question_id", "knowledge_id") VALUES (18, 18, 1);
-- users: 3 行
INSERT INTO "users" ("id", "username", "password_hash", "display_name", "active", "created_at") VALUES (1, 'admin', 'pbkdf2_sha256$200000$9cba7da576508154d2228f161233ee29$87904ae99fbc655e5df0690a1a08d99250f92e29db2a8bc1c7a65def6a7dba38', '系统管理员', 1, '2026-09-18 05:52:15.357578');
INSERT INTO "users" ("id", "username", "password_hash", "display_name", "active", "created_at") VALUES (2, 'student', 'pbkdf2_sha256$200000$c949263f72a7495be3d2614cf344de1a$81b2cdd3194f835cd40bbffaba29f79042baf235436c6c41b5c438a44c070ede', '演示学生', 1, '2026-09-18 05:52:15.373905');
INSERT INTO "users" ("id", "username", "password_hash", "display_name", "active", "created_at") VALUES (3, 'cooper', 'pbkdf2_sha256$200000$dca932d55a4c49d0c9317262ab9254f1$94b52311abfb83008e575966e019114828830d50fca86a373f5faad3b4e0934e', '十方', 1, '2026-09-18 06:15:43.682884');
-- roles: 2 行
INSERT INTO "roles" ("id", "code", "name", "description") VALUES (1, 'admin', '管理员', '拥有用户、模型、教材课程与题库的全部管理权限');
INSERT INTO "roles" ("id", "code", "name", "description") VALUES (2, 'student', '普通用户', '使用学习总览、练习、错题、分析等学习功能');
-- permissions: 6 行
INSERT INTO "permissions" ("id", "code", "name", "group") VALUES (1, 'learning:use', '使用学习功能', 'learning');
INSERT INTO "permissions" ("id", "code", "name", "group") VALUES (2, 'users:manage', '用户管理', 'admin');
INSERT INTO "permissions" ("id", "code", "name", "group") VALUES (3, 'catalog:manage', '教材/课程管理', 'admin');
INSERT INTO "permissions" ("id", "code", "name", "group") VALUES (4, 'question-bank:manage', '题库管理', 'admin');
INSERT INTO "permissions" ("id", "code", "name", "group") VALUES (5, 'llm:manage', '模型配置管理', 'admin');
INSERT INTO "permissions" ("id", "code", "name", "group") VALUES (6, 'knowledge:manage', '知识图谱管理', 'admin');
-- role_permissions: 6 行
INSERT INTO "role_permissions" ("id", "role_id", "permission_id") VALUES (1, 1, 2);
INSERT INTO "role_permissions" ("id", "role_id", "permission_id") VALUES (2, 1, 3);
INSERT INTO "role_permissions" ("id", "role_id", "permission_id") VALUES (3, 1, 4);
INSERT INTO "role_permissions" ("id", "role_id", "permission_id") VALUES (4, 1, 5);
INSERT INTO "role_permissions" ("id", "role_id", "permission_id") VALUES (5, 1, 6);
INSERT INTO "role_permissions" ("id", "role_id", "permission_id") VALUES (6, 2, 1);
-- user_roles: 3 行
INSERT INTO "user_roles" ("id", "user_id", "role_id") VALUES (1, 1, 1);
INSERT INTO "user_roles" ("id", "user_id", "role_id") VALUES (2, 2, 2);
INSERT INTO "user_roles" ("id", "user_id", "role_id") VALUES (3, 3, 2);
-- attempt_sessions: 2 行
INSERT INTO "attempt_sessions" ("id", "user_id", "mode", "title", "total", "correct", "chapter_id", "happened_on") VALUES (1, 2, 'legacy', '第一轮基础题', 10, 7, NULL, '2026-09-15');
INSERT INTO "attempt_sessions" ("id", "user_id", "mode", "title", "total", "correct", "chapter_id", "happened_on") VALUES (2, 2, 'legacy', '第二轮综合题', 8, 5, NULL, '2026-09-17');
-- attempt_items: 18 行
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (1, 1, 2, 1, 1, '已知函数 f(x) 满足 f(-x)=f(x),且 f(3)=5。下列哪个点一定在图像上?', '["A. (-3,5)", "B. (-3,-5)", "C. (3,-5)", "D. (5,-3)"]', 0, 0, 1, '偶函数', '["偶函数"]', '由偶函数定义 f(-x)=f(x) 可知,点 (3,5) 关于 y 轴的镜像点 (-3,5) 一定在图像上。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (2, 1, 2, 2, 2, '已知函数 f(x) 满足 f(-x)=-f(x),且 f(2)=4。下列哪个点一定在图像上?', '["A. (-2,4)", "B. (-2,-4)", "C. (2,-4)", "D. (4,-2)"]', 1, 2, 0, '奇函数', '["奇函数"]', '由奇函数定义 f(-x)=-f(x) 可知,(2,4) 关于原点的对称点 (-2,-4) 一定在图像上。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (3, 1, 2, 3, 3, '下列函数的图像关于 $y$ 轴对称的是?', '["A. $y=x+1$", "B. $y=x^3$", "C. $y=x^2+2$", "D. $y=x^2+x$"]', 2, 2, 1, '偶函数', '["偶函数"]', '$y=x^2+2$ 满足 $f(-x)=f(x)$,因此图像关于 $y$ 轴对称,属于偶函数。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (4, 1, 2, 4, 4, '函数 y=1/(x²-9) 的图像不可能经过哪个点?', '["A. (0,-1/9)", "B. (4,1/7)", "C. (-4,1/7)", "D. (3,1)"]', 3, 0, 0, '定义域', '["定义域"]', '分母 x²-9 不能为 0,x=±3 不在定义域内,所以图像不可能经过 (3,1)。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (5, 1, 2, 5, 5, '若函数图像关于原点对称,则下列关系一定成立的是?', '["A. f(-x)=f(x)", "B. f(-x)=-f(x)", "C. f(x)=0", "D. f(x)>0"]', 1, 1, 1, '奇函数', '["奇函数"]', '图像关于原点对称对应奇函数,即对任意定义域内的 x 有 f(-x)=-f(x)。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (6, 1, 2, 6, 6, '已知 $f(-x)=f(x)$,则函数图像的几何性质是?', '["A. 关于 x 轴对称", "B. 关于 y 轴对称", "C. 关于原点对称", "D. 无法判断"]', 1, 1, 1, '偶函数', '["偶函数"]', 'f(-x)=f(x) 是偶函数的定义式,几何上等价于图像关于 y 轴对称。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (7, 1, 2, 7, 7, '函数 y=2/(x²-1) 的图像不可能经过哪个点?', '["A. (0,-2)", "B. (2,2/3)", "C. (-2,2/3)", "D. (1,2)"]', 3, 0, 0, '定义域', '["定义域"]', '分母 x²-1 不能为 0,x=±1 不在定义域内,所以图像不可能经过 (1,2)。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (8, 1, 2, 8, 8, '若 f(-x)=-f(x),且图像经过 (5,-2),则一定经过?', '["A. (-5,-2)", "B. (-5,2)", "C. (5,2)", "D. (2,5)"]', 1, 1, 1, '奇函数', '["奇函数"]', '奇函数图像关于原点对称,(5,-2) 关于原点的对称点是 (-5,2)。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (9, 1, 2, 9, 9, '若 f(-x)=f(x),且图像经过 (4,7),则下列点一定在图像上的是?', '["(-4,7)", "(-4,-7)", "(4,-7)", "(7,4)"]', 0, 0, 1, '偶函数', '["偶函数"]', '由偶函数定义得到关于 y 轴的镜像点。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (10, 1, 2, 10, 10, '若 f(-x)=-f(x),且图像经过 (3,5),则下列点一定在图像上的是?', '["(-3,5)", "(-3,-5)", "(3,-5)", "(5,3)"]', 1, 1, 1, '奇函数', '["奇函数"]', '由奇函数定义得到关于原点的对称点。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (11, 2, 2, 1, 11, '下列函数中属于偶函数的是?', '["$y=x^3$", "$y=x^2+1$", "$y=x+1$", "$y=x^3+x$"]', 1, 2, 0, '偶函数', '["偶函数"]', '代入 $-x$ 检验 $f(-x)=f(x)$。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (12, 2, 2, 2, 12, '下列函数中属于奇函数的是?', '["y=x²", "y=x^3", "y=x²+1", "y=x^3+1"]', 1, 1, 1, '奇函数', '["奇函数"]', '代入 -x 检验 f(-x)=-f(x)。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (13, 2, 2, 3, 13, '函数 y=1/(x-2) 的图像不可能经过哪个点?', '["(0,-1/2)", "(3,1)", "(2,0)", "(4,1/2)"]', 2, 3, 0, '定义域', '["定义域"]', '分母不能为 0,因此 x=2 不属于定义域。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (14, 2, 2, 4, 14, '若一个函数图像关于 y 轴对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=0", "f(x)>0"]', 0, 0, 1, '图像对称性', '["图像对称性"]', '关于 y 轴对称对应偶函数。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (15, 2, 2, 5, 15, '若一个函数图像关于原点对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=1", "f(x)>0"]', 1, 2, 0, '图像对称性', '["图像对称性"]', '关于原点对称对应奇函数。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (16, 2, 2, 6, 16, '若 f(x) 是偶函数,且 f(-5)=9,则 f(5)=?', '["-9", "0", "9", "无法确定"]', 2, 2, 1, '偶函数', '["偶函数"]', '偶函数的两个对称自变量对应相同函数值。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (17, 2, 2, 7, 17, '若 f(x) 是奇函数,且 f(-6)=4,则 f(6)=?', '["4", "-4", "0", "无法确定"]', 1, 1, 1, '奇函数', '["奇函数"]', '奇函数的两个相反自变量对应相反函数值。');
INSERT INTO "attempt_items" ("id", "attempt_id", "user_id", "question_index", "question_id", "stem", "options", "correct_index", "selected", "correct", "knowledge_name", "knowledge_names", "explanation") VALUES (18, 2, 2, 8, 18, '判断函数 y=x⁴-x² 的奇偶性。', '["偶函数", "奇函数", "既奇又偶", "非奇非偶"]', 0, 0, 1, '偶函数', '["偶函数"]', '偶次幂组成,代入 -x 后表达式不变。');
-- error_entries: 6 行
INSERT INTO "error_entries" ("id", "user_id", "source_label", "knowledge_name", "knowledge_names", "diagnosis", "status", "created_on", "attempt_id", "question_id", "stem", "options", "selected", "correct_index", "explanation") VALUES (1, 2, '第一轮基础题 · 2', '奇函数', '["奇函数"]', '答题错误,需要复习', '待复习', '2026-09-18', 1, 2, '已知函数 f(x) 满足 f(-x)=-f(x),且 f(2)=4。下列哪个点一定在图像上?', '["A. (-2,4)", "B. (-2,-4)", "C. (2,-4)", "D. (4,-2)"]', 2, 1, '由奇函数定义 f(-x)=-f(x) 可知,(2,4) 关于原点的对称点 (-2,-4) 一定在图像上。');
INSERT INTO "error_entries" ("id", "user_id", "source_label", "knowledge_name", "knowledge_names", "diagnosis", "status", "created_on", "attempt_id", "question_id", "stem", "options", "selected", "correct_index", "explanation") VALUES (2, 2, '第一轮基础题 · 4', '定义域', '["定义域"]', '答题错误,需要复习', '待复习', '2026-09-18', 1, 4, '函数 y=1/(x²-9) 的图像不可能经过哪个点?', '["A. (0,-1/9)", "B. (4,1/7)", "C. (-4,1/7)", "D. (3,1)"]', 0, 3, '分母 x²-9 不能为 0,x=±3 不在定义域内,所以图像不可能经过 (3,1)。');
INSERT INTO "error_entries" ("id", "user_id", "source_label", "knowledge_name", "knowledge_names", "diagnosis", "status", "created_on", "attempt_id", "question_id", "stem", "options", "selected", "correct_index", "explanation") VALUES (3, 2, '第一轮基础题 · 7', '定义域', '["定义域"]', '答题错误,需要复习', '待复习', '2026-09-18', 1, 7, '函数 y=2/(x²-1) 的图像不可能经过哪个点?', '["A. (0,-2)", "B. (2,2/3)", "C. (-2,2/3)", "D. (1,2)"]', 0, 3, '分母 x²-1 不能为 0,x=±1 不在定义域内,所以图像不可能经过 (1,2)。');
INSERT INTO "error_entries" ("id", "user_id", "source_label", "knowledge_name", "knowledge_names", "diagnosis", "status", "created_on", "attempt_id", "question_id", "stem", "options", "selected", "correct_index", "explanation") VALUES (4, 2, '第二轮综合题 · 1', '偶函数', '["偶函数"]', '答题错误,需要复习', '待复习', '2026-09-18', 2, 11, '下列函数中属于偶函数的是?', '["$y=x^3$", "$y=x^2+1$", "$y=x+1$", "$y=x^3+x$"]', 2, 1, '代入 $-x$ 检验 $f(-x)=f(x)$。');
INSERT INTO "error_entries" ("id", "user_id", "source_label", "knowledge_name", "knowledge_names", "diagnosis", "status", "created_on", "attempt_id", "question_id", "stem", "options", "selected", "correct_index", "explanation") VALUES (5, 2, '第二轮综合题 · 3', '定义域', '["定义域"]', '答题错误,需要复习', '待复习', '2026-09-18', 2, 13, '函数 y=1/(x-2) 的图像不可能经过哪个点?', '["(0,-1/2)", "(3,1)", "(2,0)", "(4,1/2)"]', 3, 2, '分母不能为 0,因此 x=2 不属于定义域。');
INSERT INTO "error_entries" ("id", "user_id", "source_label", "knowledge_name", "knowledge_names", "diagnosis", "status", "created_on", "attempt_id", "question_id", "stem", "options", "selected", "correct_index", "explanation") VALUES (6, 2, '第二轮综合题 · 5', '图像对称性', '["图像对称性"]', '答题错误,需要复习', '待复习', '2026-09-18', 2, 15, '若一个函数图像关于原点对称,则该函数通常满足?', '["f(-x)=f(x)", "f(-x)=-f(x)", "f(x)=1", "f(x)>0"]', 2, 1, '关于原点对称对应奇函数。');
-- daily_completions: 1 行
INSERT INTO "daily_completions" ("id", "user_id", "chapter_id", "rating", "done_on") VALUES (1, 2, NULL, '', '2026-09-17');
-- ebook_progress: 1 行
INSERT INTO "ebook_progress" ("id", "user_id", "textbook_id", "locator", "page", "total", "position", "updated_at") VALUES (1, 1, 1, '', 1, 108, 0.009259259259259259, '2026-09-18 06:27:16.577286');
COMMIT;
VACUUM;

View File

@ -5,6 +5,7 @@
# ./scripts/db.sh list 列出本机备份 # ./scripts/db.sh list 列出本机备份
# ./scripts/db.sh restore [文件|latest] 用备份覆盖当前库(覆盖前先自动备份) # ./scripts/db.sh restore [文件|latest] 用备份覆盖当前库(覆盖前先自动备份)
# ./scripts/db.sh dump [输出文件] 导出内容快照(教材/章节/知识点/课程/题库),可提交进 git # ./scripts/db.sh dump [输出文件] 导出内容快照(教材/章节/知识点/课程/题库),可提交进 git
# ./scripts/db.sh dump <输出文件> --full 同上,但含账号/答题记录/错题本,可整库还原
# ./scripts/db.sh load [快照文件] 把内容快照灌回当前库 # ./scripts/db.sh load [快照文件] 把内容快照灌回当前库
# ./scripts/db.sh path 数据库文件位置 # ./scripts/db.sh path 数据库文件位置
# #