存储具有重复元素的数组
我正在开发一个项目,每个用户都有一个库存,这实际上只是一个与项目中的实际内容相对应的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)
);
然后,您可以添加其他信息 - 例如数量,价格,添加时的日期等。
在某些情况下,阵列更合适。但是,对于拥有用户和项目的普通情况,联结表将是第一种方法,最有可能解决您的问题。