每个元素都是外键的 PostgreSQL 数组

标签 postgresql foreign-keys foreign-collection

我正在尝试为我的应用程序创建一个数据库,我想找到最好的方法是在我的 Users 之间创建一对多关系项目表。

我知道我可以创建第三个表,ReviewedItems,并将列设置为 User id 和 Item id,但是我想知道是否可以在 Users 中创建一个列,比方说 reviewedItems,它是一个包含 Items 外键的整数数组用户已审核。

如果 PostgreSQL 可以做到这一点,请告诉我!如果没有,我将沿着我的第三张 table 走下去。

最佳答案

可能很快就可以做到这一点:https://commitfest.postgresql.org/17/1252/ - Mark Rofail 在这个补丁上做了一些出色的工作!

补丁将(一旦完成)允许

CREATE TABLE PKTABLEFORARRAY (
    ptest1 float8 PRIMARY KEY,
    ptest2 text
);
CREATE TABLE FKTABLEFORARRAY (
    ftest1 int[],
    FOREIGN KEY (EACH ELEMENT OF ftest1) REFERENCES PKTABLEFORARRAY,
    ftest2 int
);

但是,作者目前需要帮助来重新设置补丁(超出我自己的能力),因此任何阅读本文并了解 Postgres 内部原理的人请尽可能提供帮助。

关于每个元素都是外键的 PostgreSQL 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41054507/

相关文章:

postgresql - 如何检查一张表中的某些内容是否未在另一张表中使用

postgresql - 在 postgres 中建立表之间关系的最佳方法

java - 连接到 Cloud SQL : The Google Cloud SQL API is not enabled for project 上的 postgresql 实例

c# - Entity Framework 6 - 代码优先 - FK 在继承类中生成,但关系在基类中定义

django - 在 Django 中建模产品订单

java - Hibernate 二级缓存和数据库模式中的 ON DELETE CASCADE

laravel - 基于外表属性的eloquent过滤结果

java - 如何加快国外 Collection 的急切加载速度?

mysql - 让 Hibernate 尊重 MySQL 和 PostgreSQL 中的序列

java - 使用queryRaw()自动加载ForeignCollection