分類目錄歸檔:官網翻譯文章

使用模式構建:總結

現在到了我們總結使用模式構建系列的時候,這是一個很好的機會回顧一下這個系列涵蓋的模式所解決的問題,并著重復習每個模式所具有的一些好處以及做出的權衡。關于模式設計,最常見的問題是“我正在設計一個要做某某事情的應用程序,如何對數據建模?”正如我們希望你在學習本系列過程中可以體會到的那樣,要回答這個問題,[......]

閱讀全文

使用模式構建:模式版本控制模式(The Schema Versioning Pattern)

有一種說法,生命中唯一不變的東西就是變化。這同樣適用于數據庫模式。我們會想要獲取我們曾經認為不需要的信息。或者一些新上線的服務需要包含在數據庫記錄中。不管變更背后的原因是什么,一段時間之后,我們不可避免地需要對應用程序中的底層模式設計進行更改。雖然這經常會在傳統的表格數據庫系統中帶來一些挑戰甚至是麻[......]

閱讀全文

使用模式構建:文檔版本控制模式(The Document Versioning Pattern)

數據庫,例如MongoDB,非常擅長查詢大量數據并進行頻繁更新。然而,在大多數情況下,我們只針對數據的最新狀態執行查詢。那如果有些場景下我們需要查詢數據的以前狀態呢?如果我們需要一些文檔的版本控制功能怎么辦?這就是我們可以使用文檔版本控制模式的地方。

這個模式的關鍵是保持文檔的版本歷史記錄處于可用[......]

閱讀全文

使用模式構建:預分配模式(The Preallocation Pattern)

MongoDB最明顯的優勢之一就是文檔數據模型。它在模式設計和開發周期中均提供了很大的靈活性。用MongoDB文檔可以很容易地處理那些不知道之后會需要哪些字段的場景。然而,有些時候當結構是已知的,并且能夠被填充或擴充時,會使設計簡單得多。這就是我們可以使用預分配模式的地方。

為避免性能問題,內存通[......]

閱讀全文

使用模式構建:樹形模式(The Tree Pattern)

到目前為止,我們討論的許多設計模式都強調省去JOIN操作的時間是有好處的。那些會被一起訪問的數據也應該存儲在一起,即便導致了一些數據重復也是可以的。像擴展引用(Extended Reference)這樣的設計模式就是一個很好的例子。但是,如果要聯接的數據是分層的呢?例如,你想找出從某個員工到CEO的[......]

閱讀全文

使用模式構建:近似值模式(The Approximation Pattern)

假設現在有一個相當規模的城市,大約有3.9萬人。人口的確切數字是相當不穩定的,人們會搬入搬出、有嬰兒會出生、有人會死亡。我們也許要花上整天的時間來得到每天確切的居民數量。但在大多數情況下,39,000這個數字已經“足夠好”了。同樣,在許多我們開發的應用程序中,知道“足夠好”程度的數字就可以了。如果一[......]

閱讀全文