内部应用的数据库与模式设计器(实体 → 关系 → 验证规则)
生成符合规范的 Postgres 模式,包含约束、索引、RLS 说明及适合您工作流程的示例种子数据。
提示词概览
精选 AI 合作伙伴
给你的提示
为每个表添加 created_at/updated_at;为外键建立索引;明确建模审批状态转换;将枚举保留在检查约束中以增强可移植性。
来自运营团队NexusAi Technology解决的问题
临时表导致后续数据问题。此方案提前创建稳健的模式和验证计划。
生产级 DDL
可直接运行的 Postgres SQL,包含约束。
RLS 蓝图
符合最小权限原则的角色策略。
索引计划
热点路径性能说明及索引。
种子数据
真实的插入数据,便于即时测试。
AI 提示词说明
角色定位:专注于使用 Supabase 的内部 CRUD 和审批系统的 Postgres 数据架构师。
任务重要性:良好的模式防止数据重复、审批流程中断和查询缓慢。明确的约束保护操作和审计。
重要边界条件:
- 优先采用第三范式(3NF),对热点读取进行务实的反规范化。
- 在数据库层面强制数据完整性,而不仅仅依赖 UI。
- 在适用时,假设通过 org_id 或 project_id 实现多租户准备。
用户输入:
- 实体列表及关键字段
- 关系和审批状态
- 查询热点和报表需求
- 安全模型(角色和访问规则)
目标:
1) 规范化实体和关系。
2) 提出主键/外键、唯一约束和检查约束。
3) 为关键查询定义索引。
4) 概述 Supabase 的 RLS 策略和认证说明。
5) 提供种子数据和迁移脚本大纲。
分析流程:
1) 构建实体/状态映射并识别生命周期事件。
2) 为每个实体定义列、类型、可空性和默认值。
3) 指定约束和级联行为。
4) 提出索引(BTREE/GIN)及其理由。
5) 针对每个角色草拟 SELECT/INSERT/UPDATE/DELETE 的 RLS 策略。
6) 提供 SQL DDL 和示例种子插入语句。
所需输出格式:
- ER 概览(文本)
- 带注释的 SQL DDL 块
- RLS 策略列表
- 索引计划及理由
- 种子数据示例
- 迁移检查清单
质量控制:
- 每个外键都建立索引。
- 不允许模糊的可空外键。
- 为枚举/状态设置检查约束。
验证检查清单:
- 支持每个角色的 CRUD 路径
- 关键查询由索引覆盖
- 默认情况下 RLS 阻止跨租户访问
最终指令:输出可投入生产的 SQL 及简要的 Supabase 设置检查清单。
预期结果
ER 概览:org、user、role、request、approval、comment。请求状态包括:draft、submitted、approved、rejected。 SQL DDL:create table org (...); create table request (..., org_id uuid references org(id) on delete restrict, state text check (state in ('draft','submitted','approved','rejected'))); 索引:在 request(org_id, state) 上,request(search_tsv) 上使用 GIN 索引。 RLS:在 request 上启用;为 select 创建 org_read 策略,条件为 (org_id = auth.org_id())。
实施流程
在 ChatGPT 中设计模式
将您的实体列表、关系和角色矩阵粘贴到 ChatGPT 中。运行提示以获取 ER 说明、带约束的 SQL DDL 和 RLS 策略。审查索引的设计理由。
25 min在 Supabase 中创建数据库
打开 Supabase SQL 编辑器并应用 DDL。启用 RLS 并添加生成的策略。使用种子数据填充测试项目并验证约束。
20 min验证查询
在 Supabase 中运行您的前五个查询。确认索引被使用且延迟可接受。如查询计划显示全表扫描,调整索引定义。
15 min
