Supabase 商家后台从0搭建「会员数据库+订单管理+权限分级」:Postgres 建表、Row Level Security、Webhook 自动触发与数据导出实操教程

广告 文章开头推广

用 Supabase 把商家后台的「会员+订单+权限」一次搭好

你想要的其实就三件事:会员数据别乱、订单流程可追踪、不同员工权限别越界。到2026年4月4日 02:00这个时间点,Supabase 的 Postgres + RLS + Webhook 足够把一个小型商家后台跑起来,哪怕你每天 300 单、会员 1 万,也能稳。

Postgres 建表:3 张表就能跑业务

结构别复杂,先把核心字段定死:谁买、买了啥、谁能看。

  • members:id(UUID)、phone、name、level、created_at
  • orders:id、member_id、amount、status(paid/refund/pending)、created_at
  • staff_roles:user_id、role(admin/ops/cs)、store_id

示例(精简版):

商家收款0.2%费率在线开户
收款码、服务号、小程序、PC网页、扫码枪、刷脸支付等多场景
立即开户
create table members(
  id uuid primary key default gen_random_uuid(),
  phone text unique, name text, level text default 'normal',
  created_at timestamptz default now()
);

create table orders(
  id uuid primary key default gen_random_uuid(),
  member_id uuid references members(id),
  amount numeric(10,2) not null,
  status text default 'pending',
  created_at timestamptz default now()
);

Row Level Security:把“能看什么”写进数据库

RLS 的好处是:就算前端写炸了,数据也不容易被越权读走。

  • 会员本人:只能看自己的订单(用 auth.uid() 关联 member 的 user_id,或用映射表)
  • 客服 cs:只能查订单,不允许改金额
  • 运营 ops:能改订单状态(pending→paid/ refund)
  • 管理员 admin:全店可见

做法是给 orders 开 RLS,再按 role 写 policy。重点:policy 里只放最小权限,别偷懒用全表放行。

Webhook 自动触发 + 数据导出:让订单闭环

订单一旦插入或状态变更,就自动通知外部系统,比如发货、发短信、记账。

  • 在 Supabase 配置 Database Webhook:监听 orders 的 INSERT/UPDATE,把 payload 打到你的回调 URL(例如 /webhooks/order-paid)
  • 回调里做幂等:用 order_id + status 校验,避免重复发货
  • 导出给财务:Studio 里筛选 paid 订单直接导出 CSV;或写 SQL 视图(按店铺、日期、支付方式)再导出

可执行建议:今天就按“3 张表 + 3 个角色”落地一版;先把 RLS policy 写到能挡住越权查询;Webhook 只做一件事(比如 paid→发货),跑通后再加退款、对账导出。

THE END
广告 文章结尾推广

分享这篇文章

相关关键词
微信扫码分享
生成二维码中...
使用微信扫描二维码
将文章分享给好友或朋友圈