# Projects 表增强计划(V1 + V2 预留) > **任务名称**:完善 projects 表,预留企业版扩展字段 > **创建时间**:2025-01-14 > **状态**:待执行 --- ## 1. 任务背景 ### 当前状态 - 已有 projects 表基础设计 - 使用 `type` 字段区分 'mine' 和 'collab' - 使用 `owner_id` 指向用户 ### 需求分析 - V1:只支持个人用户,保持简单 - V2:需要支持企业账号和项目预算积分 - 预留字段:避免 V2 大规模重构 --- ## 2. 执行步骤 ### Step 1: 更新 projects 表设计文档 **文件**:`docs/需求/backend/04-services/project/project-service.md` **变更内容**: 1. 新增 V2 预留字段: - `owner_type`:所有者类型('user' | 'organization') - `ai_credits_budget`:项目专属积分预算 - `budget_consumed`:已消耗的预算积分 2. 更新字段说明,标注 V1/V2 使用情况 3. 更新索引设计 4. 新增字段注释说明 ### Step 2: 生成方案文档 **文件**:`docs/方案/projects-table-v1-v2-design.md` **内容**: - V1 vs V2 字段对比 - 数据迁移策略 - 业务逻辑演进路径 - 完整的 SQL DDL --- ## 3. 涉及文件 | 文件路径 | 操作类型 | 说明 | | ---------------------------------------------------------- | -------- | -------------------- | | `docs/需求/backend/04-services/project/project-service.md` | 修改 | 更新 projects 表设计 | | `docs/方案/projects-table-v1-v2-design.md` | 创建 | 生成详细方案文档 | --- ## 4. 关键变更点 ### V1 字段(当前使用) ```sql -- 基本信息 name TEXT NOT NULL description TEXT type project_type NOT NULL DEFAULT 'mine' -- 'mine' | 'collab' owner_id BIGINT NOT NULL -- 指向 users.user_id folder_id BIGINT ``` ### V2 预留字段(暂不使用) ```sql -- 多态所有者(V2 启用) owner_type TEXT DEFAULT 'user' CHECK (owner_type IN ('user', 'organization')) -- 项目预算积分(V2 启用) ai_credits_budget INTEGER DEFAULT 0 budget_consumed INTEGER DEFAULT 0 ``` ### 字段使用说明 - V1 阶段: - `owner_type` 固定为 'user' - `ai_credits_budget` 和 `budget_consumed` 保持为 0 - 积分从 `users.ai_credits_balance` 扣除 - V2 阶段: - `owner_type` 可以是 'organization' - 启用项目预算功能 - 积分优先从项目预算扣除 --- ## 5. 验证清单 - [ ] projects 表设计已更新 - [ ] 字段说明清晰标注 V1/V2 - [ ] 索引设计已优化 - [ ] 方案文档已生成 - [ ] 用户确认无误 --- **等待用户批准执行...**