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