ユーザー関連のデータをテーブルに保存するために、次のモデルを実装しています-2つの列があります- uid
(主キー)とmeta
、ユーザーに関する他のデータをJSON形式で保存する列です。
uid | meta
--------------------------------------------------
1 | {name:['foo'],
| emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
2 | {name:['sann'],
| emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
uid
これは、テーブルに、、、のような多くの列が含まれる、プロパティごとに1列のモデルよりも優れた方法(パフォーマンス、デザイン)name
ですかemailid
。
最初のモデルで気に入っているのは、制限なしでできるだけ多くのフィールドを追加できることです。
また、最初のモデルを実装したので、疑問に思いました。'foo'のような名前を持つすべてのユーザーをフェッチしたいなど、クエリを実行するにはどうすればよいですか?
質問-JSONまたはフィールドごとの列を使用してデータベースにユーザー関連データを保存するためのより良い方法はどれですか(フィールドの数は固定されていないことに注意してください)?また、最初のモデルが実装されている場合、上記のようにデータベースをクエリするにはどうすればよいですか?クエリで検索される可能性のあるすべてのデータを別の行に保存し、他のデータをJSON(別の行)に保存して、両方のモデルを使用する必要がありますか?
アップデート
検索を実行する必要のある列が多すぎることはないので、両方のモデルを使用するのが賢明ですか?検索する必要のあるデータの列ごとのキーと他のデータのJSON(同じMySQLデータベース内)?