我正在实现以下用于在表中存储与用户相关的数据的模型-我有2列- uid(主键),该meta列以JSON格式存储有关用户的其他数据。
这是一个更好的方式(性能明智的,设计明智)比一列,每个属性模型,其中表将有很多像列uid,name,emailid。
我喜欢第一个模型,您可以添加尽可能多的字段,没有限制。
另外,我想知道,既然我已经实现了第一个模型。我该如何对其执行查询,例如,我想获取所有名称如“ foo”的用户?
问题 -使用JSON或每字段列数,哪种更好的方式将用户相关数据(请记住字段数是固定的)存储在数据库中?另外,如果实现了第一个模型,如何如上所述查询数据库?我是否应该通过将查询可以搜索的所有数据存储在单独的行中以及将其他数据存储在JSON(是不同的行)中来使用这两种模型?
更新资料 由于将没有太多列需要执行搜索,因此同时使用两个模型是否明智?我需要搜索的数据的每列关键字和其他人的JSON(在同一MySQL数据库中)?
如果您确实希望能够无限制地添加任意多个字段(除了任意文档大小限制),请考虑使用NoSQL解决方案,例如MongoDB。
对于关系数据库:每个值使用一列。将JSON Blob放在一列中实际上几乎不可能进行查询(并且当您实际找到有效的查询时会非常缓慢)。
关系数据库在建立索引时会利用数据类型的优势,并打算通过规范化的结构来实现。
附带说明:这并不是说您永远不要将JSON存储在关系数据库中。如果您要添加真实的元数据,或者您的JSON描述的信息不需要查询而仅用于显示,那么为所有数据点创建单独的列可能就太过麻烦了。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。