在 author_id int 中使用数组引用 user(id)

Using an Array in author_id int references user(id)

作者在 https://github.com/calebmer/postgraphql 上展示了一个架构:

create table post (
  id serial primary key,
  author_id int non null references user(id),
  headline text,
  body text,
  …
);

如果我想引用多位作者并使用 array 引用他们,我将如何重写架构? 会是:author_id int[] non null references user(id)?

可以。但你不能。

有检查约束

您可以使用控制它的函数添加检查约束。

缺点:不是外键

有触发器和辅助table

您可以添加 table post_author 并使用 On insert or update 触发器填充它。

缺点:它很复杂,而且会重复信息。