Logo花火漫画开发文档

数据库概述

PostgreSQL 数据库的连接方式、访问约定与核心模块导航

概述

HanabiManga 使用 Supabase 托管的 PostgreSQL 数据库,通过 Supabase SDK 访问。数据库层提供 RLS 行级安全、RPC 函数、实时订阅等能力。

连接方式

禁止直接使用 SQL 连接数据库。 所有业务代码必须通过 Supabase SDK 访问数据。

SDK 接入(唯一推荐方式)

所有客户端和 Edge Function 均通过 Supabase SDK 访问数据库,不使用原始 SQL 连接。当前使用的 SDK:

SDK用途
supabase-kt(Kotlin)Android 客户端
supabase-js(TypeScript)Web 端、Edge Functions
supabase-swift(Swift)iOS 客户端(规划中)

SDK 提供 Postgrest(CRUD)、Auth、Storage、Functions、Realtime 等统一接口,自动处理认证、RLS 和连接管理。

SQL 直连(仅限管理操作)

当需要执行以下操作时,直接联系 galentwww,通过 Supabase Dashboard 的 SQL Editor 执行:

  • 数据迁移与批量数据修正
  • 表结构变更(DDL)
  • 批量事务处理
  • 一次性数据清理或修复
  • RPC 函数的创建与修改

不要在任何应用代码中硬编码数据库连接字符串或使用 psql 直连。所有直连操作通过 SQL Editor 完成,确保有审计记录。

核心表关系

auth.users (Supabase 管理)

    ↓  FK: profiles.id = auth.users.id
public.profiles (用户扩展信息)

    ├─→ comics (漫画)
    │     ├─→ chapters (章节)
    │     ├─→ comic_relations (关联关系)
    │     ├─→ comic_likes / comics_favorites
    │     └─→ comments (评论)

    ├─→ notifications (通知)
    ├─→ orders (订单)
    └─→ free_user_daily_premium_views (高清配额)

启用的扩展

扩展用途
PGroonga全文搜索(中日文分词)
uuid-osspUUID 生成
pg_cron定时任务(人气值重置等)

On this page