テーブルにユーザー関連データを格納する次のモデルを実装しています。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']}
--------------------------------------------------
これは良い方法である(性能面、デザイン的に)テーブルのような多くの列を持っています1列あたりの財産モデル、よりuid
、name
、emailid
。
最初のモデルで気に入っているのは、制限はなく、できるだけ多くのフィールドを追加できることです。
また、最初のモデルを実装したので不思議に思っていました。「foo」のような名前を持つすべてのユーザーをフェッチしたいなど、クエリをどのように実行しますか?
質問 -JSONまたはフィールドごとの列を使用して、データベースにユーザー関連データ(フィールドの数は固定されていないことに注意してください)を格納するためのより良い方法はどれですか?また、最初のモデルが実装されている場合、上記のようにデータベースを照会する方法は?クエリで検索される可能性のあるすべてのデータを別の行に格納し、他のデータをJSON(別の行)に格納して、両方のモデルを使用する必要がありますか?
更新
検索を実行する必要がある列が多すぎないので、両方のモデルを使用するのが賢明ですか?検索する必要があるデータの列ごとのキーと他の人のJSON(同じMySQLデータベース内)