用途:为 laneweaverTMS 设计 PostgreSQL 17 + Supabase 数据库结构,适用于新建表与 schema、编写迁移、规划表关系与外键、定义索引与约束、实现审计与软删除、编写函数与触发器、设计计算视图、配置行级安全(RLS)策略及多态关系。
主要能力与约定:主键统一用 UUID(DEFAULT gen_random_uuid()),仅 users 表用 INT4 GENERATED ALWAYS AS IDENTITY,审计列 created_by/updated_by/deleted_by 均引用 users.id。每张表必须包含 created_at、updated_at、created_by、updated_by、deleted_at、deleted_by 审计列。软删除用 deleted_at TIMESTAMPTZ,禁止硬删除,查询活跃记录用 WHERE deleted_at IS NULL。数据类型约定:ID 用 UUID,时间用 TIMESTAMPTZ,金额用 NUMERIC(10,2),字符串用 TEXT;禁止 TIMESTAMP、VARCHAR(n)、CHAR(n)、MONEY、SERIAL、BIGSERIAL、JSON、REAL、FLOAT。ENUM 用于小型稳定值集,值用 snake_case,需在表创建前的独立迁移中定义并加 COMMENT;新增值用 ALTER TYPE ... ADD VALUE,删除值需重建类型。约束包括 CHECK、UNIQUE(含 UNIQUE NULLS NOT DISTINCT)、外键(CASCADE/SET NULL/RESTRICT,审计列一律 SET NULL)。索引需手动为所有外键建索引,支持部分索引、状态与时间戳索引、GIN(JSONB/数组/全文检索),命名格式 idx_[table]_[column(s)]。函数统一 SECURITY INVOKER 并 SET search_path = 'public',含 update_timestamp、同步、校验与业务逻辑函数。触发器含 updated_at、审计日志、同步、校验与自动生成值。视图必须 WITH (security_invoker = on) 以兼容 RLS。
限制:资料未提供安装命令、收费、价格、平台支持或效果数据,暂未提供。