Books と Audiobooks の 2 つのテーブルがあり、どちらも主キーとして ISBN を持っています。isbnBooks and Audiobooks ISBN への外部キー制約を持つ属性を持つwrittenby テーブルがあります。
に挿入するときに発生する問題writtenbyは、postgresql が、挿入する ISBN がwrittenbyブックとオーディオブックの両方にあることを望んでいるということです。
著者と著者が書いた本/オーディオブックを格納するテーブルを持つことは理にかなっていますがwrittenby、これは postgresql のテーブルには変換されません。
私が実装を考えている代替ソリューションは、2 つの新しいリレーションを持つことaudiobook_writtenbyでしbooks_writtenbyたが、それが良い代替策であるかどうかはわかりません。
1 つのテーブルで 2 つの異なるテーブルを参照するという当初のアイデアをどのように実装するか、writtenbyまたはデータベースをより適切に設計するにはどうすればよいか教えてください。さらに情報が必要な場合はお知らせください。