0

我打算为我的应用程序这样做:

  1. 将唯一 id 存储到 User 模型的 key_name 中。
  2. 在给定的任何时间,用户将被允许选择一次用户名,我打算用用户选择的用户名替换模型的原始 key_name。
  3. 通过我的实现,任何新用户,用户模型只会在用户被激活时创建。

根据情况,我的问题是,以下哪种方法更好?

  1. 用户登录后,用户必须选择一个用户名,这样我就可以使用选择的 keyname = username 创建用户模型。但是,这种方法可能会让用户感到不愉快,因为他们应该被允许在他们想要的任何时候选择用户名。
  2. 在上述情况下解释的方法,但是我需要做clone_entity。但是,使用 clone_entity,是否会将引用属性分配回新的克隆实体?而且,性能是重中之重,如果同时涉及很多用户,这在数据库操作方面会不会很昂贵?
4

1 回答 1

0

如果您决心将 user_name 作为键,则任何一种方法都应该可以正常工作(假设您有防止重复用户名的逻辑)

但是,使用 clone_entity,是否会将引用属性分配回新的克隆实体?

如果克隆实体正确完成,引用属性将被复制而不会出现问题。但是,如果您有任何实体引用您正在克隆的实体,则不会更新这些实体以引用该实体的新克隆。

而且,性能是重中之重,如果同时涉及很多用户,这在数据库操作方面会不会很昂贵?

只要有效地实现克隆并假设您传入要克隆的实体,每次克隆调用(新创建的实体的放置)应该只有一个数据库操作。

看起来您链接的 clone_entity 有一个更新,可以避免对引用属性进行过多的数据库调用,所以您应该很好。

于 2012-07-03T23:30:08.290 回答