2016-09-17 87 views
2

为什么现在有些公司正在使用这种方法将json对象保存到数据库中,而不是创建新表并将数据存储在数据库中?为什么Json进入db?

真正的优势是什么?

+1

我想你应该问公司他们为什么要这样做。 – dasblinkenlight

+2

http://blog.2ndquadrant.com/postgresql-anti-patterns-unnecessary-jsonhstore-dynamic-columns/ –

回答

1

在我的公司,我们在Postgres数据库中使用JSONB,因为需要存储不适合传统关系模型的动态列数据,因为列的数量会一直增加,或者我们必须有无意义的列和根据其他一些列来指定这些含义,这些列可以确定在我看来称为天堂宽恕的行值。

我发现这种方法也比典型的Entity-attribute-value模型更好,用于执行查找和通常理解数据。过去我一直在使用EAV模型的分析师也分享了这一观点。

我们的数据中很大一部分都适用于关系模式设计,并且由于需要NoSQL方法,实际上它不是大多数数据(也不是完全无模式表),我们决定使用Postgres来代替将事情复杂化并将小部分数据移到不同的(例如:文档)数据库中。

由于9.2发生了很大变化,Postgres为json和jsonb列中的优化搜索提供了很好的支持。

0


您可以在以下情况下使用JSON,
*您有很深的架构层次
*在存储图像,音频和视频文件的情况下
*特别是在与NoSQL的工作
*如果您使用的关系结构,你可以使用RDBMS

+0

将图像存储为JSON是一种**真的**不好的选择 –

0

我将JSON存储在数据库中的唯一原因是历史列表。比方说,几个用户都有一个JSON形式的好友列表,并且每次为每个用户更改好友列表时都会记录下来。

0

当存在动态密钥的机会时使用JSON。

例如:您的商品页面有4列 - sr, name, age, amount。假设这个页面上有一个多列排序功能,并且用户想要保存他的自定义顺序。在这种情况下,我可以轻松地将json作为sr => DESC, age => ASC存储在相关表的sort_order字段中。