追加のテーブルindividual_pks (individual_pk integer primary key)
を使用して回避できます。 親と子の両方からのすべての主キーを使用します。これはトリガーを使用して維持されます(非常に単純です— individual_pks
に挿入します) 挿入時に削除し、削除時に削除し、更新時に更新します。変更された場合はindividual_pk
。
次に、子ではなく、この追加のテーブルに外部キーを指定します。パフォーマンスにわずかな影響がありますが、行を追加/削除する場合のみです。
または、継承を忘れて、古い方法で実行します。つまり、null許容列がいくつかある1つのテーブルです。