为什么今天有些公司正在使用这种方法将json对象保存到数据库而不是在其中创建新表和存储数据?
有什么真正的优势?
答案 0 :(得分:1)
在我公司,我们在Postgres数据库中使用JSONB
,因为需要存储不适合传统关系模型的动态列数据,因为列数会一直增长,或者我们必须有列没有意义,并根据一些其他列来指定那些意义,这些列可以识别行值,在我看来,这些行称为天堂的宽恕。
我发现这种方法也比典型的Entity-attribute-value模型更好地执行查找并且通常理解数据。我公司的分析师也赞同这种观点,他们过去也一直在使用EAV模型。
我们的数据中有更大比例适合关系模式设计,因为需要NoSQL方法实际上并不是大多数数据(也不是完全无模式的表),我们决定坚持使用Postgres而不是使事情复杂化并将一小部分数据移动到不同的(例如:文档)数据库。
自9.2以来已经发生了很多变化,Postgres为json和jsonb列中的优化搜索提供了很好的支持。
答案 1 :(得分:0)
如果是,您可以使用JSON
*您有深层架构层次结构
*存储图像,音频和视频文件的情况下
*特别是在使用NoSQL时
*如果您使用的是关系结构,则可以使用RDBMS
答案 2 :(得分:0)
我将JSON存储在数据库中的唯一原因是历史列表。假设有几个用户都有一个JSON形式的好友列表,每次为每个用户更新好友列表的记录都会很好。
答案 3 :(得分:0)
当有可能存在动态密钥时使用JSON。
例如:您有一个包含4列的列表页面 - sr, name, age, amount
。假设此页面上存在多列排序功能,用户希望保存其自定义订单。在这种情况下,我可以在相关表格的sort_order字段中轻松地将json存储为sr => DESC, age => ASC
。
在大型系统中,向表中添加新字段需要停机时间,或者在添加字段时基本上会锁定表。在这些情况下,我们可以将新密钥添加到json字段而不是新列。