You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Supabase中如何将复合主键作为外键进行关联?

解决方案

category表的主键是复合主键(user_id, category_id),只有同时结合这两个字段才能唯一确定一条分类记录。因此创建item表的外键时,不能仅关联category_id,必须同时关联user_id和category_id两个字段,这样无需新增冗余的category_user_id字段。

方式一:用SQL语句创建表

在Supabase的SQL编辑器中执行以下语句:

CREATE TABLE item (
  user_id UUID REFERENCES auth.users(id),
  item_id BIGINT,
  category_id BIGINT,
  -- 按需添加其他业务字段
  PRIMARY KEY (user_id, item_id),
  -- 外键关联category的复合主键
  FOREIGN KEY (user_id, category_id) REFERENCES category(user_id, category_id)
);

方式二:通过Supabase可视化界面配置

  1. 创建item表时,保留user_id、item_id(设置为复合主键)和category_id字段
  2. 进入外键设置区域,点击添加外键
  3. 按住Ctrl/Command键,同时选中user_id和category_id作为外键字段
  4. 关联表选择category,对应关联字段选择user_id和category_id
  5. 保存设置完成创建

这样配置后,Supabase会识别到user_id+category_id的组合关联,既满足数据归属的完整性约束,又避免了冗余字段。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:33:24