次のテーブルがあります。
CREATE TABLE mail (
id serial,
parent_mail_id integer,
...
PRIMARY KEY (id),
FOREIGN KEY (parent_mail_id) REFERENCES mail(id),
...
);
CREATE TABLE incoming (
from_contact_id integer NOT NULL REFERENCES contact(id),
...
PRIMARY KEY (id),
---> FOREIGN KEY (parent_mail_id) REFERENCES mail(id), <---
...
) INHERITS(mail);
CREATE TABLE outgoing (
from_user_id integer NOT NULL REFERENCES "user"(id),
...
PRIMARY KEY (id),
--> FOREIGN KEY (parent_mail_id) REFERENCES mail(id), <--
...
) INHERITS(mail);
incoming
自動的に継承されないため、外部キー (および主キー)outgoing
から継承して再度定義します。mail
問題は:
メールを挿入した場合、外部キーはスーパー テーブル ( ) でのみ機能するためincoming
、テーブルから参照することはできません。outgoing
mails
そのための回避策はありますか?