こんにちは(少なくともこのあたりでは)、
構築に問題がある多対多の関係スキーマがあります。主な問題は、私が主キーと外部キーのみを使用しており (物事を単純化するために varchar や enum を使用していない)、多対多の関係の数が予測できず、いつでも増加する可能性があることです。
さまざまな質問を見回しましたが、この問題に直接対処するものは見つかりませんでした。
問題を半分に分割したので、1 対多のスキーマが 2 つになりました。1つは解決されましたが、もう1つは私にフィットしています。
テーブル FOO が、単純な主キーを持つ標準的で退屈なテーブルであると仮定しましょう。それは一対多の関係にあるものです。
テーブル BAR は、FOO の複数のキーに関連付けることができます。関連するキーの数は事前にわかりません。
例:
- クエリから FOO は ID 3、4、5 を返します。
- BAR には、3、4、5 に関連する一意のキーが必要です (ただし、任意の数の ID が返される可能性があります)。
通常の結合テーブルは機能しません:
Table FOO_BAR
primary_key | foo_id | bar_id |
FOO は 3 つの一意のキーを返すため、ここで bar_id は foo_id と 1 対 1 の関係にあります。
foo_ids 3、4、5 を単一の bar_id にマップできないため、2 つの結合テーブルを使用しても機能しないようです。
Table FOO_TO_BAR
primary_key | foo_id | bar_to_foo_id |
Table BAR_TO_FOO
primary_key | foo_to_bar_id | bar_id |
私は何を間違っていますか?私は物事を実際よりも複雑にしていますか? 問題にどのようにアプローチすればよいですか?助けてくれてありがとう。