• 締切済み

MYSQL テーブル作成

はじめまして。 MYSQLのテーブル作成について質問があります。 今WEBサイトからユーザにレシピを入力してもらうシステムを作っているのですが、『必要な材料』のような数がユーザの入力に依存するような場合どのようにしてテーブルを作成するべきなのでしょうか? 考えたのは 1)そのrecipeというテーブルを作って一つのcolomnに『ingredient』をつくってその中にすべてまとめて入力 2)recipeの他にingredientsというテーブルを作りその中でrecipe_idなどでレシピを表示するときに一緒に引き出せるようにする。 レシピの数が増えたり、材料の数が増えた場合、どちらのほうが結果的によいのでしょうか? よろしくお願いします。

みんなの回答

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

ご提示のフローを精査したわけではないですが、 前者はSQL的には全文検索を設定することになるとおもいますが 集計などに劣るとおもいます。 後者はおそらく正規化されたものを指しているのだと思うので 可能であれば後者の方がよいでしょう。 きちんとやるならrecipeとingredientというテーブルをつくって レシピと材料を別個で管理し、recipe_ingredientという 中間テーブルを作って、組み合わせを管理する方がよいでしょう。

関連するQ&A