数据库结构

PostgreSQL 15 — 42+ 数据表、19 视图、196 函数、RLS 安全策略

数据库通过 Flyway 管理迁移(版本化 + 追踪)。迁移格式:V1.0.x__action_object.sql。SQL 文件不使用中文,Cron = UTC。

核心表分类

用户与认证

  • auth.users — GoTrue 管理的用户表(不可直接查询,需通过 RPC)
  • profiles — 用户资料(RLS 严格保护,客户端必须查 public_profiles view)
  • public_profiles — 公开用户资料视图(已过滤敏感信息)

内容系统

  • articles — 文章主表(标题、内容、状态、类型)
  • columns — 专栏表(is_community = false 为普通专栏,true 为文社)
  • tags / sections / subcategories — 标签、分类、子类体系
  • comments — 评论表

创作台

  • writing_projects — 项目主表(类型、状态、可见性)
  • story_bible_entities — 故事资料库实体(6 种类型)
  • entity_relationships — 实体关联关系
  • story_nodes — 大纲节点(5 层树形结构,含 parent_id 自引用)
  • project_timelines / timeline_events — 多时间线与事件

社交与互动

  • messages / conversations — 私信系统
  • notifications — 通知系统
  • follows / bookmarks / likes — 社交互动

激励体系

  • points_transactions — 积分流水
  • badges / user_badges — 徽章与用户获得
  • virtual_goods / purchases — 虚拟商品与购买记录

运营管理

  • events — 活动表(TEXT + CHECK 约束,非 enum)
  • moderation_queue / moderation_logs — 审核队列与日志
  • sms_verification_codes / sms_send_logs — 短信验证

重要规则

  • 禁止直接查询 profiles 表 → 使用 public_profiles view
  • 不能 join auth.users(PostgREST 限制) → 使用 RPC 或分开查询
  • Events 表不使用 PostgreSQL enum → 使用 TEXT + CHECK 约束