2012-07-03 30 views
0

我打算爲我的應用程序做到這一點:更改型號的KEY_NAME + App Engine的

  1. 存儲一個唯一的ID爲用戶模型KEY_NAME。
  2. 在任何時候,用戶將被允許選擇一次用戶名,我打算用用戶選擇的用戶名替換模型的原始key_name。
  3. 在我的實施中,任何新用戶,用戶模型將僅在激活用戶時創建。

根據情況,我的問題,下面哪一種更好的方法?

  1. 用戶登錄後,用戶必須選擇一個用戶名,以便我可以創建用戶模型,並選擇keyname = username。然而,這種方法可能會讓用戶感到不快,因爲他們應該被允許隨時選擇他們想要的用戶名。
  2. 在上面的情況解釋的方法,但我需要做clone_entity。但是,對於clone_entity,是否將引用屬性分配回新的克隆實體?而且,性能是優先考慮的,如果數據庫操作同時涉及很多用戶,這對於數據庫操作而言是否代價高昂?
+0

您是否需要使用user_name作爲密鑰?我認爲用戶名可能是一個簡單的字段。 – chustar

+0

當然!保存數據庫操作。 – MrCooL

回答

0

如果你心臟設置上具有USER_NAME爲重點兩種方法應該能正常運行(假設你要防止出現重複的用戶名邏輯)

然而,隨着clone_entity,將引用屬性被分配回新的克隆實體?

如果克隆實體正確完成,則引用屬性將被複制而不會出現問題。但是,如果您有任何實體引用您正在克隆的實體,則這些實體將不會更新以引用該實體的新克隆。

而且,性能是優先考慮的事情,如果數據庫操作同時涉及很多用戶,這對數據庫操作而言是否代價高昂?

只要克隆有效實行,假設你要克隆的實體傳遞應該只有每個克隆調用(新創建實體的認沽)一個數據庫操作。

它看起來像你鏈接的clone_entity有一個更新,將避免多餘的數據庫調用引用屬性,所以你應該是好的。

相關問題