gpt4 book ai didi

postgresql - 在 postgres 中存储和访问相关对象

转载 作者:行者123 更新时间:2023-11-29 13:20:18 25 4
gpt4 key购买 nike

我有一个产品表和一个单独的表,我想在其中存储相关产品,该表由两个字段组成:create table related_products(id1 int, id2 int) 和索引放在每个领域。这意味着我必须在 id1 和 id2 中搜索产品 ID,然后取出另一个看起来很乱的 id 字段。 (当然,一个产品可以有很多相关产品)。

是否有更好的表结构来存储我可以在 postgresql 中使用的相关产品?

最佳答案

从数据库的角度来看,这并不困惑,但它应该是这样的,只要只有成对的产品可以相关。

如果你想确保一个关系只能输入一次,你可以使用唯一索引:

CREATE UNIQUE INDEX ON related_products(LEAST(id1, id2), GREATEST(id1, id2));

要搜索与产品 42 相关的产品,您可以这样查询:

SELECT products.*
FROM products
JOIN (SELECT id2 AS id
FROM related_products
WHERE id1 = 42
UNION ALL
SELECT id1
FROM related_products
WHERE id2 = 42
) rel
USING (id);

关于postgresql - 在 postgres 中存储和访问相关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com