我有一个包含4个数组列的表..结果如下:
ids signed_ids new_ids new_ids_signed
{1,2,3} | {2,1,3} | {4,5,6} | {6,5,4}
Run Code Online (Sandbox Code Playgroud)
无论如何要通过忽略元素的顺序来比较ids并使signed_ids它们相等?
使用此架构:
create table object (
obj_id serial primary key,
name varchar(80) not null unique,
description text,
tag_arr int[]
);
create table tag (
tag_id serial primary key,
label varchar(20) not null unique
);
Run Code Online (Sandbox Code Playgroud)
一个对象可以附加任意数量的标签。object X tag我希望将tag_ids保留在一个数组中,而不是一个表,以便可以轻松地使用对象记录获取它们。
如何创建索引object以便每个元素tar_arr都是一个索引?
也就是说,有没有更好的方法来解决这个问题?
这可以通过以下方式实现:
create table obj_x_tag(
obj_id references object,
tag_id references tag,
constraint obj_x_tag_pk primary key( obj_id, tag_id )
);
select obj_id, name, description, array_agg( tag_id )
from object o
join obj_x_tag x using( obj_id …Run Code Online (Sandbox Code Playgroud)