You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
Project 服务数据库初始化文档补充完成
日期: 2026-02-03
类型: 文档补充
影响范围: Project 服务数据库设计文档
变更概述
补充完成 docs/requirements/backend/04-services/project/database-init.md 文档的缺失章节,使其成为完整的数据库初始化设计文档。
补充内容
1. 关联关系章节
- ✅ 16 张表的完整关联图
- ✅ 跨服务关联表(User、Resource、AI 服务)
- ✅ 应用层验证规则(6 大类验证)
2. 初始化脚本章节
- ✅ 17 个完整的 SQL 建表语句
- folders, folder_members
- projects, project_members, project_shares, project_versions
- screenplays, screenplay_versions, screenplay_characters, screenplay_locations, screenplay_props, screenplay_element_tags
- storyboards, storyboard_items, storyboard_resources
- project_resources
- 触发器函数
- ✅ 索引创建语句(包含 pg_trgm 全文搜索索引)
- ✅ 约束和触发器定义
- ✅ 表注释和字段注释
- ✅ Docker 容器化执行顺序
3. 迁移建议章节
- ✅ Alembic 迁移流程
- ✅ 数据迁移 3 阶段(结构 → 数据 → 验证)
- ✅ 性能优化建议(索引优化、查询优化、分区策略)
- ✅ 数据完整性检查 SQL
- ✅ 监控和维护任务
- ✅ 回滚计划
4. 附录
- ✅ Python IntEnum 枚举定义(11 个枚举类)
- ✅ SQLModel 模型示例(Folder、Project)
- ✅ 常见问题 FAQ(6 个问题)
- ✅ 文档变更历史
技术栈符合性
所有补充内容 100% 符合 jointo-tech-stack 规范:
- ✅ PostgreSQL 17
- ✅ UUID v7 主键
- ✅ TIMESTAMPTZ 时间字段
- ✅ SMALLINT + IntEnum 枚举
- ✅ 禁止物理外键
- ✅ 应用层验证
- ✅ Docker 容器化执行
- ✅ snake_case 命名
文档结构
project/database-init.md (完整版)
├── 1. 技术栈符合性检查
├── 2. 数据库设计标准化
├── 3. 表结构定义(16 张表)
├── 4. 关联关系 ✨ 新增
├── 5. 初始化脚本 ✨ 新增
├── 6. 迁移建议 ✨ 新增
└── 附录 ✨ 新增
相关文件
docs/requirements/backend/04-services/project/database-init.md- 主文档(已补充完整)docs/requirements/backend/04-services/database-init-overview.md- 总览文档docs/requirements/backend/04-services/README.md- 导航文档
后续建议
- 代码实现:基于本文档创建 SQLModel 模型和 Alembic 迁移脚本
- Repository 层:实现应用层引用完整性验证
- Service 层:实现业务逻辑和跨服务调用
- 测试:编写数据库集成测试
补充完成时间: 2026-02-03
文档版本: v1.0 → v1.1 (完整版)