簡體   English   中英

noSQL用於存儲產品信息?

[英]noSQL for storing product information?

我們要解決客戶的需要的基於Web的應用程序,擁有的產品和他們的數據量-包括價格,重量,物理volyme,等等。

除了價格之外的所有東西都是數據,這些數據將被存儲一次,然后可能不會改變。 另一方面,價格將至少每天更新一次,以適應不斷變化的貨幣匯率。 因此,我們已經考慮了一些關於使用noSQL數據庫的問題,但是我還沒有經驗來決定它是一個好主意還是只是一個奇特而現代的解決方案來解決我們的問題?

是嗎?

非常感謝!

正如Michael解釋的那樣 ,根據您的具體要求,關系數據庫就足夠了。 但是,NoSQL數據庫可能是更好的解決方案,具體取決於您的要求的兩個方面:數據的數量格式

數據量

如果單個關系數據庫服務器可以輕松處理數據量,那么一定要使用該關系數據庫。 但是,如果您處理的是無法有效處理單個服務器的大量數據,NoSQL解決方案可能是更好的選擇。 NoSQL數據庫更適合跨服務器分發 ,因為它們不必處理關系完整性和原子事務等事務。

數據模型

如果所有產品大致包含相同的屬性,並且所有這些屬性都可以輕松存儲在單個表中,則使用關系數據庫。 但是,如果數據模型在每個產品類型上存在很大差異和/或產品數據被標准化為多個表並且不能輕易地進行非規范化,那么無模式 NoSQL解決方案(例如文檔數據庫)可能是更好的選擇。 然后,您將不必處理大量數據的連接操作。

簡而言之,如果您處理的是大量數據,或者處理(部分)無模式的數據,NoSQL絕對是一個可行的解決方案。

優化關系數據庫

請記住,關系數據庫也可以通過分片針對大量數據進行優化。 例如,您可以根據SKU將產品拆分為單獨的表。 然后數據庫只需要處理小表,而不是單個大表。 這些表可以存儲在不同的服務器上以分散負載。

優化您的應用程序架構

另一種選擇是在關系數據庫之上使用CQRS架構 所有數據修改查詢都將發送到單個主數據庫。 然后將這些修改發布到只讀數據庫或高速緩存,其中包含數據的非規范化表示 在只讀數據庫上執行數據檢索查詢以獲得更好的性能。 雖然這是一個很好的紙質架構,但它確實會對應用程序的整體架構產生相當大的影響。 因此,除非您以前使用過,否則我不會推薦CQRS。

你的問題沒有簡單的答案,因為這完全取決於具體的要求。 我的建議是在項目的設計階段牢記關系和NoSQL解決方案 如果您意識到關系數據庫已足夠,那么使用它。 如果您意識到使用NoSQL數據庫同樣容易,那就試試吧。

不是是/否答案,但希望有些食物雖然:)

雖然noSQL數據庫可以解決您的問題,但在我看來,它也適合標准的關系模型。 您可能希望將價格設置為一個單獨的表,其中1-1連接到主要產品表,以便經常更新的表更小(並且您或數據庫可以使用不同的策略來處理這兩個表)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM