trae需严格复现原始需求中的字段语义、约束、业务规则及上下游依赖:①枚举值、字段名、规则描述须原样保留;②约束条件逐条粘贴不删减;③关键字段加注释锚点说明业务作用;④依赖链用三段式结构并标注协议与数据格式;⑤输出字段级清单,绑定约束并验证ddl可落地性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Trae在参与数据库设计讨论时,准确复现原始需求中的字段语义、约束条件、业务规则和上下游依赖关系,避免把“用户注销后30天内订单仍需可查”压缩成“保留历史订单”,把“status字段取值仅限'active','inactive','archived'”泛化为“状态枚举”,导致评审遗漏关键校验逻辑。
锁定业务语义不被泛化
第一步:在提示词开头直接声明【所有带单引号的枚举值、带反引号的字段名、带引号的业务规则描述,必须原样复现,禁止转译、合并或补充默认值】。
第二步:把原始需求中明确写出的约束条件逐条粘贴,例如:‘user表中phone字段必须满足E.164格式(+8613812345678),且同一tenant_id下唯一’——这句话里每个符号、括号、空格、连字符都不可删减或替换。
第三步:对含业务含义的字段名加注释锚点,如`order_status` → ‘该字段驱动履约引擎状态机跳转,取值变更触发kafka topic: order-status-change’。不加这句,Trae会当成普通字符串处理,忽略其作为事件源的关键作用。
保留上下游系统耦合细节
方法一:用「调用方→本系统→下游方」三段式结构写依赖链
例如:‘Java服务通过MyBatis调用`SELECT * FROM user_profile WHERE tenant_id = #{tid}` → 本系统user_profile表主键为`id`,联合索引`idx_tenant_id_created_at`已存在 → 下游风控服务依赖`last_login_at`字段做活跃度评分,要求该字段非NULL且更新延迟≤5秒’。
方法二:标注接口协议与数据格式
‘上游同步用户数据走HTTP POST /v1/users/batch,body为JSON数组,每个对象含`uid`(string)、`profile_version`(int64)、`tags`(string[]);本系统入库前需校验`tags`长度≤5且每个tag长度≤20’——若省略`int64`和`string[]`类型声明,Trae可能建议用VARCHAR存version,引发精度丢失。
【注意:若上下游使用Protobuf或Avro Schema,必须粘贴实际`.proto`或`.avsc`片段中对应字段定义,不能只写“按Schema传输”】
强制输出可验证的字段级清单
① 执行:提取原始需求中所有显式声明的字段,按出现顺序编号列出,每项包含字段名、类型、是否为空、默认值、业务说明原文(不改写);
② 执行:扫描所有含“必须”“禁止”“仅限”“≤”“≥”“唯一”“非空”字样的句子,将对应约束绑定到具体字段;
③ 执行:检查每条约束是否能在SQL DDL语句中直接落地,例如“email字段全局唯一” → `ALTER TABLE user ADD CONSTRAINT uk_email UNIQUE (email)`;若无法直接转为DDL,则标为【需人工确认】;
④ 执行:对每个外键字段,写出其引用的目标表名、目标字段名、ON DELETE行为(如CASCADE/RESTRICT),缺失任一项即视为信息不全。











