2017-07-05 85 views
0

我們在Cosmos Db中有兩個獨立的文檔集,一個存儲用戶,它是各種角色,第二組文檔存儲特定作業的權限。在Azure Cosmos上實現分頁Db來自兩個單獨文檔的數據

現在,工作清單是無限的,可以在一段時間內大幅增長。由於group by在多個文檔中是不允許的,我們正試圖找出實現基於角色或特定作業檢索所有用戶的最佳策略。

解決方案1 ​​ - 將用戶數據和工作數據保存爲長文檔中的子文檔,並幫助查詢甚至延續標記。

解決方案2 - 將用戶和角色數據保存在1個文檔和多個工作文檔中,並分別在客戶端查詢並在那裏執行查詢。在這種情況下,持續令牌支持會丟失,因爲您必須首先查詢完整數據以提供任何有意義的結果。

3)解決方案3 - 保留每個作業文檔的角色數據並直接在其上查詢。在這種情況下,我們將根據作業得到多少用戶,然後讓單個查詢/用戶獲得他們的信息。

任何人都可以推薦一個更好的解決方案或從上面3挑選,並建議一個前進的道路?

+0

我建議您調查CosmosDb內部的新圖形功能,因爲它使得這些類型的查詢更容易與 –

+0

一起工作。謝謝Jesse的建議。我一直在看圖表Db,但問題是我們的數據是在SQL(文檔Db),你需要創建一個單獨的帳戶有圖表。 – user1932923

+0

'任何人都可以推薦一個更好的解決方案,或從上面選擇3並提出一條前進的道路嗎?實施這些解決方案時您有任何細節問題嗎? –

回答

0

看來您需要額外的存儲來存儲關係。我們可以使用Azure SQL來存儲用戶(documentId,用戶ID,角色ID),角色,工作的關係。然後將諸如useinfo之類的屬性信息存儲到Documentdb中。

相關問題