2010-12-23 51 views
0

我只是想知道,如果任何有經驗的Azure表存儲的人可以評論,如果使用1表來存儲多種類型是一個好主意?Azure Table存儲設計問題:使用1個表來存儲多種類型是一個好主意嗎?

我想這樣做的原因是我可以做交易。但是,我也想從發展的角度來理解,這種方法是否容易處理?到目前爲止,我正在使用Azure存儲資源管理器來協助開發和在一個表中查看多種類型已經很麻煩。如果我將所有博客文章,類別,註釋存儲在一張表中,我會遇到什麼問題?例如,我設計了一個博客社區網站,另一方面,如果我不這樣做,那麼我應該如何確保類別和帖子的一致性(假設1個帖子可以有一個1類別)?

或者是否有任何其他不同的方法來解決使用表格存儲的問題?

謝謝。

回答

2

如果您的目標是要有完美的一致性,那麼使用單個表格是一個好方法。不過,我認爲你可能會讓自己變得更加困難,並獲得很少的回報。我這樣說的原因是表格存儲非常可靠。如果你處理的是非常重要的數據,交易是非常重要的,但是在大多數情況下,比如博客,我認爲你會更好:1)允許一小部分不一致的數據,2)處理失敗以更手動的方式。

在同一個表中存儲多種類型會遇到的最大問題是序列化。目前大多數表格存儲SDK和實用程序都是爲處理單一類型而設計的。也就是說,您可以手動處理多個模式(即將對象反序列化爲包含所有可能屬性的主對象),或直接與REST服務交互(即不通過Azure SDK)。如果您直接使用REST服務,則必須自己處理序列化,因此您可以更高效地處理多種類型,但折衷之處在於,您正在手動執行通常由Azure SDK處理的所有內容。

確實沒有正確或錯誤的方式來做到這一點。這兩種情況都會起作用,這只是最實際的問題。除非有非常好的理由否則我個人傾向於爲每個表格放一個模式。我認爲你會發現表存儲是足夠可靠的,而無需使用交易。您可能想要查看Windows Azure Toolkit。我們設計了該工具包來簡化一些更常見的天藍色任務。

+0

非常感謝Nathan的洞察力!很高興知道表存儲是如此可靠。基於這個事實,我會相應地設計我的應用程序。我在看Azure Table Storage白皮書,在第7.2節中解釋了交叉表一致性技術,實現起來非常複雜。我已將你的標記爲答案。謝謝! – 2010-12-24 03:34:57

相關問題