2016-09-17 85 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字段中。