0

我正在考慮一個新項目的GAE + NDB。我仍然對祖先有點困惑,所以我可以使用一些建議來說明如何正確使用它們。AppEngine NDB:如何正確應用祖先?

我的案例: 該應用程序將處理工廠的生產訂單,我們計劃有不同的客戶。 爲了減少管理任務,我們將讓所有客戶端使用相同的應用程序和相同的數據存儲(具有單獨的應用程序+數據存儲將成爲客戶端之間的精美中國牆,但是是一種惡夢)。

我需要實現一種方法來隔離客戶端之間的數據。客戶端A不應該能夠訪問此應用上任何其他客戶端的任何數據。

因此,建議在數據存儲中使用祖先將數據從不同的客戶端分離出來? 我認爲在這種情況下,我可以擁有像ClientA-Products,ClientA-Orders,ClientB-Products,ClientB-Orders等祖先密鑰。或者甚至可能擁有客戶鍵入的所有事務:如ClientA,ClientB ..?

或者在每個實體中將實體與客戶關聯的屬性會更好嗎? 在這種情況下,「產品」和「訂單」實體都將擁有一個屬性「公司」,該屬性必須由應用程序在每次寫入時填寫幷包含在每個查詢中。

在此先感謝您的想法!

回答

0

多租戶將適用於您的用例。

from google.appengine.api import users 

def namespace_manager_default_namespace_for_request(): 
    # assumes the user is logged in. 
    return 'client_id' 

瞭解更多關於它here

+0

嗨Dmirty,看起來像我的情況的答案。謝謝! – kxtronic 2014-12-13 20:51:42