Files
beige/启动包/.claude/rules/db.md
yangqianqian 6a2632da70 baseline: Clover 独立仓库首次基线提交
将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。
当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包),
M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 11:30:22 +08:00

50 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
paths:
- "src/models/**"
- "alembic/**"
- "migrations/**"
---
# 数据库规则Clover · MySQL + Alembic
> 承接架构方案v0.3 第三章16表。一期建14张matrix_accounts/preference_profile 二期预留。
## 迁移
- 每次 schema 变更创建迁移文件,不手动改数据库
- 迁移文件不可修改已提交的,只能新增
- 迁移必须包含 up 和 down
- 按序001(banana搬3张) → 002(多租户基础) → 003(业务7张) → 004(飞轮)
## 查询
- 禁止 SELECT *,明确列出字段
- 大表查询必须有索引支撑,新增查询模式时同步加索引
- N+1 问题:关联查询用 JOIN 或批量加载
- 飞轮聚合走 MySQL JOINMongoDB 只存 AI debug trace业务不依赖
## 命名
- 表名snake_case 复数users, generation_tasks, preference_events
- 字段名snake_casecreated_at, workspace_id
- 索引名idx_表名_字段名
## 关键约束(架构方案)
- 任务主键:自增 BIGINT + mongo_trace_id VARCHAR(24)
- user_api_keysUNIQUE(user_id, workspace_id, provider)
- 所有业务表必须有 workspace_id多租户逻辑隔离
- preference_events 必须有 workspace_id + product_id跨公司隔离+按产品分开学)
## 状态机generation_tasks.status
pending → generating → pending_selection → pending_review → approved/rejected → archived
- 打回后回到 pending_selection
- 非法流转返错误码 40901
## 字段红线
- API Key 字段encrypted_keyFernet**不存 url 字段**token站固定自家站
- users 表:删除 banana 的 credits 字段
- eval_score留 NULL不接 banana 假评分)
- data_ownershipclient_data / platform_asset洞7分层归属
- banned_words.levelauto_fix / soft_warn / hard_block三级
## 枚举约束
- DB 枚举约束要有对应代码侧常量文件(消除三套命名打架)
- 品类products.category是纯数据字段禁止任何品类枚举常量