<p>请为校园二手教材交易平台设计数据库:业务主体是学生发布/购买教材、提交评价;核心实体包括学生、教材、订单、评价;关键动作有ISBN校验、分类标签、订单状态流转。请按以下格式输出:①每张表单独用sql包裹;②每条CREATE TABLE上方用中文注释说明解决的业务问题;③所有字段标注NOT NULL、默认值、索引类型(PRIMARY KEY/UNIQUE/INDEX);④外键显式写出REFERENCES及ON DELETE行为。不要出现“可以考虑”“建议评估”等模糊表述;不解释范式原理;不讨论数据库选型。仅输出:1.CREATE TABLE语句 2.ALTER TABLE建索引 3.COMMENT ON COLUMN 4.INSERT示例数据(1条) 5.CHECK约束 6.触发器(仅状态自动更新时)。</p>
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Codeium生成一份数据库设计讨论提示词,最终能直接拆解成开发团队可执行的建表、索引、约束等具体操作步骤,而不是泛泛而谈“考虑范式”或“注意性能”。
明确角色与上下文输入
在向Codeium提问前,先写一段结构化背景说明,包含业务主体、核心实体和关键动作。例如:“我们正在开发一个校园二手教材交易平台,主要实体有学生、教材、订单、评价;学生可发布教材、下单购买、提交评价;教材需支持ISBN唯一校验和分类标签。”
这一步不能省略。缺少具体实体和动词,Codeium容易输出“建议使用外键”这类空话,无法导出CREATE TABLE语句。
强制要求输出格式为可执行SQL+注释
在提示词末尾明确指定输出结构:
“请按以下格式输出:① 每张表单独用```sql```包裹;② 每条CREATE TABLE语句上方用中文注释说明该表解决什么业务问题;③ 所有字段必须标注是否NOT NULL、默认值、索引类型(如PRIMARY KEY / UNIQUE / INDEX);④ 外键必须显式写出REFERENCES及ON DELETE行为。”
【不写明ON DELETE行为会导致后续迁移脚本执行失败】
过滤抽象建议,只保留落地项
方法一:用否定指令排除无效内容
在提示词中加入:“不要出现‘可以考虑’‘建议评估’‘需结合实际’等模糊表述;不解释第三范式原理;不讨论MySQL vs PostgreSQL选型。”
方法二:用正向锚定限定范围
追加一句:“仅输出以下6类内容:1. CREATE TABLE语句 2. ALTER TABLE添加索引语句 3. COMMENT ON COLUMN注释 4. INSERT示例数据(仅1条)5. 必要的CHECK约束 6. 触发器定义(仅当涉及状态自动更新时)。”
这一步操作起来很简单,直接把上述两类指令拼进你的提示词里就行。
验证输出是否具备可执行性
第一步:检查每张表是否有主键定义,且类型为BIGINT或UUID(避免用INT导致未来扩容困难)。
第二步:逐行扫描外键字段,确认REFERENCES后跟的是完整表名+字段名,例如REFERENCES students(id),而不是REFERENCES users(id)这种错配。
第三步:运行EXPLAIN ANALYZE模拟查询,验证提示词生成的索引是否覆盖WHERE + ORDER BY组合场景——如果没覆盖,说明Codeium生成的INDEX语句漏掉了复合索引。
第四步:复制所有SQL到本地PostgreSQL实例执行,遇到ERROR: type "jsonb" does not exist就立刻删掉该字段,改用TEXT+应用层解析——【Codeium默认生成jsonb但SQLite不支持,必须手动降级】

















