- ベストアンサー
一つのフィールドに複数の外部キーを入れたいのですが。
一つのフィールドに複数の外部キーを入れたいのですが、どのようにすれば良いでしょうか? 自前でカンマなどの区切り文字を使用することを考えたのですが、スマートで無く他の方法がないか質問させていただきました。 どなたかご助言していただけると嬉しいです。 # ENUM及びSETは移植性の観点から使用したくないです。すみません;
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
リンク用のテーブルを別途用意して管理するとよいと思います。 複数のデータをいれたフィールドでは正規化できず結局は 使用用途もおのずと限定されてしまうでしょう。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
ごめんなさい。運用方針がわかりません。 外部キーをもとにどのような検索をしたいかによって 回答内容はおおきく変わってくるでしょう。 もう少し具体的に例示をしていただければそれに そった回答をできるかもしれません。
質問者
お礼
すみません。自己解決しました; リンク用テーブルを使った方法が今理解できました。 悩ませてしまって申し訳ありません。 ありがとうございました_ _
補足
ご回答ありがとうございます_ _ #質問に書き忘れていたのですが(すみません;)、フィールドに入れる複数の外部キーの数は可変です。 リンク用のテーブルとはどのように作成すればいいのでしょうか? まず、複数の外部キーを入れたいフィールドに、リンク用テーブルのプライマリキーを入れると解釈しました。 ですが、そのリンク用テーブルをどう定義すれば良いかわかりませんorz リンク用テーブルのフィールドの定義を以下のように考えてみました。 |リンク用テーブルプライマリキー(インクリメントナンバ)|外部キー1|外部キー2|外部キー3| ですが、これですと外部キーが二つある場合や一つだけの場合の時NULL値を挿入しなければならなくなってしまいます。 また、外部キーの最大数が事前に予測できないので、この方法だと困ってしまいます。 リンク用テーブルの良い定義仕方を教えていただけると嬉しいです_ _