我在数据库中有两个表:
CREATE TABLE items(
id SERIAL PRIMARY KEY,
... some other fields
);
Run Code Online (Sandbox Code Playgroud)
此表包含具有唯一ID的数据行.
CREATE TABLE some_chosen_data_in_order(
id SERIAL PRIMARY KEY,
id_items INTEGER[],
);
Run Code Online (Sandbox Code Playgroud)
);
该表包含数组类型字段.每行包含items特定顺序的表中ID的值.例如:{2,4,233,5}.
现在,我想从表中获取表items中所选行的数据,some_chosen_data_in_order以及数组类型中元素的顺序.
我的尝试是加入:
SELECT I.* FROM items AS I
JOIN some_chosen_data_in_order AS S ON I.id = ANY(S.id_items) WHERE S.id = ?
Run Code Online (Sandbox Code Playgroud)
第二次尝试是子查询,如:
SELECT I.* FROM items AS I
WHERE I.id = ANY
(ARRAY[SELECT S.id_items FROM some_chosen_data_in_order WHERE id = ?])
Run Code Online (Sandbox Code Playgroud)
但是它们都没有以与数组字段相同的顺序保存ID.你能帮我吗,如何从items表中获取数据,并从some_chosen_data_in_order表格中获取特定行的数据ID顺序?
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
productid INTEGER[] NOT NULL,
amount INTEGER[] NOT NULL,
totalprice FLOAT NOT NULL,
ordertime TIMESTAMP NOT NULL,
FOREIGN KEY (productid) REFERENCES products(id)
);
Run Code Online (Sandbox Code Playgroud)
我试图创建一个表来记录订单.由于那个订单可能包含多个产品,我计划使用数组来记录每个产品的产品,同样数量的产品.但是当我想让productid成为引用表产品的id属性的外键时,我发现productid是一个数组,但是products(id)只是一个数字.如何解决这个问题,使productid数组的每个元素都引用产品(id)?我正在使用postgresql btw.
Thx adhead!
如何在 PostgreSQL 中的数组上添加外键约束?
角色查找表
CREATE TABLE party_role_cd
(
party_role_cd bigint NOT NULL,
code character varying(80) NOT NULL,
CONSTRAINT party_role_cd PRIMARY KEY (party_role_cd)
);
Run Code Online (Sandbox Code Playgroud)
参与方可以有零个或多个角色 [0-N 关系]
CREATE TABLE party
(
party_id biging NOT NULL,
party_role_cd bigint[] NOT NULL,
CONSTRAINT party_id PRIMARY KEY (party_id)
);
Run Code Online (Sandbox Code Playgroud)
如何在表中添加foreign key约束?party_role_cd arrayparty