關於更新實體數據以及如何最好地處理它,我的團隊進行了一些討論。這是一個安全框架,所以這裏有一些限制和想法。實體更新策略
- DB中的每個表都有一個PK,它是一個GUID,這是我們的多節點集羣解決方案所必需的。我們的想法是,我們不希望通過API向客戶公開此實體,因爲它可以做兩件事,
- 給他們提供他們工作所需的更多信息,並給予黑客更多關於系統的信息。
- 支持惡夢是一個客戶端以某種方式硬編碼到這個ID,如果我們需要改變我們PK的客戶端受到影響。
解決方案,露出像一個獨特的角色名稱的對象和領域項目的博物關鍵,在一起機制保障獨特但更新這兩個值中是一個挑戰,因爲你需要指定老和新值更新,或傳遞原始對象和新對象中的兩個對象,以便我們可以找到要更新的對象。有點凌亂,
另一種方法是做一個備用鑰匙,並將其暴露給客戶,他們可以使用它的所有他們想要的,我們不關心,因爲它不綁定到我們的PK。
似乎現在每個人都只是將PK作爲身份證用於沒有任何問題的實體,不確定如何說服我們的團隊從古老的編程日開始。
另一個問題是如何支持部分更新,問題是你有10個屬性,4個集合等實體...與名稱+領域組合,並指定要更新的屬性,而不是拉下整個對象更改1字段,發回更新。我說延遲加載集合,但不知道部分更新是否合理。
想法?
謝謝!
因爲我們有我們必須使用GUID /唯一標識符,主鍵一個分佈式數據庫,並且通過使數據庫集羣處於活動狀態,類似於Oracle RAC,但這是使用MS Sql,問題是不支持標識列,因爲您可以插入任何節點,並且該值可能不要unqiue或已經被使用,只要使用一個GUID就簡單多了。 – Enigmae 2009-05-28 13:40:08