我正在实现以下模型来在我的表中存储用户相关数据 - 我有 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
)name
吗emailid
?
我喜欢第一个模型的地方是,您可以添加尽可能多的字段,没有限制。
另外,我想知道,现在我已经实现了第一个模型。如何对其执行查询,例如,我想获取所有名称为“foo”的用户?
问题- 使用 JSON 或每字段列在数据库中存储用户相关数据(请记住字段数不固定)的更好方法是什么?另外,如果实现了第一个模型,如何如上所述查询数据库?我是否应该使用这两种模型,通过将查询可能搜索到的所有数据存储在单独的行中并将其他数据存储在 JSON 中(是不同的行)?
更新
由于我需要执行搜索的列不会太多,因此使用这两种模型是否明智?我需要搜索的数据的每列键和其他人的 JSON(在同一个 MySQL 数据库中)?