2012-07-26 50 views
1

我正在將Web應用程序的SQL數據庫遷移到RavenDB,我的團隊正試圖定義什麼關鍵生成策略對我們來說是最好的。主要討論的是我們是否使用自然鍵或代理鍵。所以我想知道RavenDB中每個策略的優缺點。RavenDB中每個關鍵生成策略的利弊

謝謝

回答

0

推薦的解決方案是讓RavenDB爲您處理它們。 它會生成諸如「items/2」之類的東西等。 首先,這些都足夠好,可讀性強,並且易於高效生成。

你也可以做一些事情,比如「users/ayende」,但我會等待,直到你有更多的RavenDB經驗。

最後,對於高級內容,您可以使用諸如「customers/1234/orders/8234」之類的密鑰,這爲高級場景打開了一些非常好的選擇。

+0

感謝您的回覆。但是,如果我選擇代理鍵,例如hilo策略,則可以使用更具代表性的鍵(例如「http://example.com/users/ayende」)來創建URL,以指向文檔「users/1 「?或者在這種情況下,一個自然鑰匙會更合適? – peflorencio 2012-07-27 14:30:57

0

如果你在你的密鑰中建立了太多的邏輯,你可能會後悔,除非你知道你的問題域。由於沒有客戶端,我們在PHP中使用相當多的RavenDB工作。我們在C#中創建原型,然後通常遵循客戶創建的內容。有時候,自動多元化會變得很有趣,就像人民會成爲人民一樣。這通常並不重要,除非你直接從Javascript打RavenDB。那麼唯一的失敗是朋友可能會質疑你的英語技能。