06-05 增加删除操作
题目
删除书籍时同时删除关联日志和标签,先写真实 SQLite 检查,再实现 CLI,最后启动独立进程确认重新查询的结果。
推导与做法
先为一本书建立标签和阅读日志,再执行带 title 条件的 DELETE。连接已经开启 foreign_keys,两个关联表通过 ON DELETE CASCADE 清理。
事务提交并关闭 Library 后,重新连接检查三张表,记录数都为 0。接入 CLI 时新增 remove 子命令,调用同一删除函数;未知书名按已有错误路径返回非零退出码。
实现与运行
查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。
在配套目录的 调试与项目组织/quality_project 中运行。先按项目 README 执行 uv sync --locked。
# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch06.py" 06-05
程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。
查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
"books": 0,
"reading_log": 0,
"book_tags": 0
}