我正在使用 2 个模板构建一个站点:统计信息和标签,但它们之间还有一个 N:M 映射。
统计信息和标签在网站上都有自己的页面,它们具有共同的特征,所以我想要一个名为 pages 的父表。
create table pages (id serial primary key, title varchar(50));
create table stats (show_average boolean) inherits (pages);
create table tags (color varchar(50)) inherits (pages);
create table stat_tags (
stat_id int
,tag_id int
,foreign key (stat_id) references stats(id)
,foreign key (tag_id) references tags(id)
);
最后一个查询产生:
ERROR: there is no unique constraint matching given keys for referenced table "tags"
如果我在没有继承的情况下这样做:
create table stats (id serial primary key, title varchar(50), show_average boolean);
create table tags (id serial primary key, title varchar(50), color varchar(50));
create table stat_tags (
stat_id int
,tag_id int
,foreign key (stat_id) references stats(id)
,foreign key (tag_id) references tags(id)
);
...它接受所有查询。
两个孩子是否可以在 PostgreSQL 中拥有一个映射表?如何?
谢谢!