我正在尝试使用一个双重主键作为外键。
Create table AAA (
AAA_id int primary key
);
create table BBB (
AAA_id int,
BBB_name character varying(20),
primary key (AAA_id, BBB_name)
);
create table CCC (
AAA_id,
BBB_name,
DDD_id,
... ???
);
AAA表是一个对象
BBB表与AAA表是多对一的关系,并保存了AAA表的别名
我正在尝试创建一个数据透视表CCC,它在DDD表和BBB表之间建立一个多对一的关系。
我想要的大概是这样的:
create table CCC (
AAA_id,
BBB_name,
DDD_id,
foreign key (AAA_id, BBB_name) references BBB(AAA_id, BBB_name) on update cascade
);
AAA_id和BBB_name都是外键,但它们始终引用BBB中的同一行。
但这显然是无效的。在PostgreSQL中产生此类型行为的最佳方法是什么?