Postgres 10.5:如何 link 一个整数数组到单独 table 的主键?

Postgres 10.5: how to link an array of integers to primary keys of separate table?

我有两个 Postgres 表,TABLE_ATABLE_B

TABLE_A 包含列 table_b_fks,其值是一个整数数组(例如 "{1,2,4}"),它们属于 TABLE_B 的主键集。

TABLE_B 有两列,主键和 text

我的目标是创建一个实体化视图,它与 TABLE_A 相同,除了 table_b_fks 整数数组替换为 [=13] 中的 text 数组=].

这可能吗?好像是。有其他选择吗?

事实上,整数数组虽然可以很容易地用于连接表,但不能正式地视为外键:

select table_b_fks, array_agg(name)
from table_a
join table_b on id = any(table_b_fks)
group by 1

Test it in db<>fiddle.

请注意,该示例有点简化,您需要 table_a 中的唯一列来标识其行(可用于分组依据)。