• ベストアンサー

一つのフィールドに複数の外部キーを入れたいのですが。

一つのフィールドに複数の外部キーを入れたいのですが、どのようにすれば良いでしょうか? 自前でカンマなどの区切り文字を使用することを考えたのですが、スマートで無く他の方法がないか質問させていただきました。 どなたかご助言していただけると嬉しいです。 # ENUM及びSETは移植性の観点から使用したくないです。すみません;

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

リンク用のテーブルを別途用意して管理するとよいと思います。 複数のデータをいれたフィールドでは正規化できず結局は 使用用途もおのずと限定されてしまうでしょう。

alpha_mul
質問者

補足

ご回答ありがとうございます_ _ #質問に書き忘れていたのですが(すみません;)、フィールドに入れる複数の外部キーの数は可変です。 リンク用のテーブルとはどのように作成すればいいのでしょうか? まず、複数の外部キーを入れたいフィールドに、リンク用テーブルのプライマリキーを入れると解釈しました。 ですが、そのリンク用テーブルをどう定義すれば良いかわかりませんorz リンク用テーブルのフィールドの定義を以下のように考えてみました。 |リンク用テーブルプライマリキー(インクリメントナンバ)|外部キー1|外部キー2|外部キー3| ですが、これですと外部キーが二つある場合や一つだけの場合の時NULL値を挿入しなければならなくなってしまいます。 また、外部キーの最大数が事前に予測できないので、この方法だと困ってしまいます。 リンク用テーブルの良い定義仕方を教えていただけると嬉しいです_ _

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ごめんなさい。運用方針がわかりません。 外部キーをもとにどのような検索をしたいかによって 回答内容はおおきく変わってくるでしょう。 もう少し具体的に例示をしていただければそれに そった回答をできるかもしれません。

alpha_mul
質問者

お礼

すみません。自己解決しました; リンク用テーブルを使った方法が今理解できました。 悩ませてしまって申し訳ありません。 ありがとうございました_ _

関連するQ&A