最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

存储具有重复元素的数组

IT培训 admin 6浏览 0评论

存储具有重复元素的数组

我正在开发一个项目,每个用户都有一个库存,这实际上只是一个与项目中的实际内容相对应的ID数组。

为了存储库存,我想使用Postgres,只是将数据序列化/反序列化为字符串格式。但是,在这个数组中,很可能它们会有许多单个ID。这些ID都是整数,所以我打算用逗号连接它们并在检索过程中将它们分开。

例如,库存可能是[1, 2, 3, 3, 3, 4],但最好不要像1,2,3,3,3,4那样存储长重复列表。

有没有一种有效的方法来存储重复的项目?

回答如下:

“项目中的实际内容”应该是数据库中的另一个表。正确的关系方法是建立一个联结表:

create table userItems as (
    userItemId serial primary key,
    userId int references users(userId),
    itemId int references items(itemId)
);

然后,您可以添加其他信息 - 例如数量,价格,添加时的日期等。

在某些情况下,阵列更合适。但是,对于拥有用户和项目的普通情况,联结表将是第一种方法,最有可能解决您的问题。

存储具有重复元素的数组

我正在开发一个项目,每个用户都有一个库存,这实际上只是一个与项目中的实际内容相对应的ID数组。

为了存储库存,我想使用Postgres,只是将数据序列化/反序列化为字符串格式。但是,在这个数组中,很可能它们会有许多单个ID。这些ID都是整数,所以我打算用逗号连接它们并在检索过程中将它们分开。

例如,库存可能是[1, 2, 3, 3, 3, 4],但最好不要像1,2,3,3,3,4那样存储长重复列表。

有没有一种有效的方法来存储重复的项目?

回答如下:

“项目中的实际内容”应该是数据库中的另一个表。正确的关系方法是建立一个联结表:

create table userItems as (
    userItemId serial primary key,
    userId int references users(userId),
    itemId int references items(itemId)
);

然后,您可以添加其他信息 - 例如数量,价格,添加时的日期等。

在某些情况下,阵列更合适。但是,对于拥有用户和项目的普通情况,联结表将是第一种方法,最有可能解决您的问题。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论