我從數據庫運行非常複雜的報告。到目前爲止,我正在返回一個複雜的json對象,並且javscript正在呈現報告。但隨着越來越多的創建這個json對象需要很長時間。將Json對象存儲到數據庫中
我想用另一種方法取代它。用戶將創建一個生成報告的請求,並且服務器端進程可以生成json並將其存儲以備後用,用戶將通過電子郵件發送鏈接。
將json對象存儲在數據庫中是否安全?存儲它的主要原因是用戶要運行報告的列從未修復過。我寧願去參加NoSql?
在此先感謝。
我從數據庫運行非常複雜的報告。到目前爲止,我正在返回一個複雜的json對象,並且javscript正在呈現報告。但隨着越來越多的創建這個json對象需要很長時間。將Json對象存儲到數據庫中
我想用另一種方法取代它。用戶將創建一個生成報告的請求,並且服務器端進程可以生成json並將其存儲以備後用,用戶將通過電子郵件發送鏈接。
將json對象存儲在數據庫中是否安全?存儲它的主要原因是用戶要運行報告的列從未修復過。我寧願去參加NoSql?
在此先感謝。
在數據庫中存儲JSON應該是安全的。從這個意義上說,JSON是簡單的文本,我沒有看到這種方法的任何問題。
在您提到的特定情況下,您應該考慮Redis等關鍵值存儲區。你可以存儲,比如user_id - > json_object。關鍵值存儲非常適合緩存,這基本上就是您所做的。
在一般情況下,存儲JSON是可能的,但它失去了一個重要的事情:如何在SQL查詢中使用數據的語義並不明顯。例如,假設我們存儲如下記錄:
{'color': blue, 'height': '40px'}
{'color': blue, 'height': '50px'}
{'color': red, 'height': '40px'}
作爲數據庫中的字符串。
如果我們想識別所有顏色爲「藍色」的元素,那麼我們唯一的選擇是在每個字符串元素中搜索字符串「%blue%」。這既昂貴又容易出錯。您可能會考慮拆分JSON並將其作爲數據庫存儲或移動到某種鍵值對或其他存儲區。
您可能想考慮使用節儉而不是JSON。有一個JavaScript thrift庫,所以你仍然可以渲染節儉的對象,並且生成和更有效地存儲在任何數據庫中都會更快。 – DigitalGhost