我实现以下模型用于在我的表中存储用户相关的数据 – 我有2列 – uid(主键)和一个元列,以JSON格式存储用户的其他数据。
uid | meta
--------------------------------------------------
1 | {name:['foo'],
| emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
2 | {name:['sann'],
| emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
这是一个更好的方法(性能方面,设计方面)比一列每属性模型,其中表将有很多列,如uid,name,emailid。
我喜欢的第一个模型是,你可以添加尽可能多的字段,没有限制。
另外,我想知道,现在我已经实现了第一个模型。如何对其执行查询,例如,我要获取所有名为“foo”的用户?
问题 – 这是更好的方式来存储用户相关的数据(请记住,字段数量不是固定的)在数据库使用 – JSON或列每字段?另外,如果实现第一个模型,如何如上所述查询数据库?我应该使用这两个模型,通过将一个查询可能搜索的所有数据存储在单独的行中,而JSON中的其他数据(是不同的行)?
更新
既然不会有太多的列,我需要执行搜索,是明智的使用这两个模型?每个列的键值我需要搜索和JSON的其他人(在同一个MySQL数据库)?