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.6 KiB
2.6 KiB
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
变更内容:
-
新增 V2 预留字段:
owner_type:所有者类型('user' | 'organization')ai_credits_budget:项目专属积分预算budget_consumed:已消耗的预算积分
-
更新字段说明,标注 V1/V2 使用情况
-
更新索引设计
-
新增字段注释说明
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 字段(当前使用)
-- 基本信息
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 预留字段(暂不使用)
-- 多态所有者(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
- 索引设计已优化
- 方案文档已生成
- 用户确认无误
等待用户批准执行...