2013-01-10 20 views
0

回滚3更新具有审批要求的模型

我有一个用户模型,其中有几个细节,其中很少是可编辑的,但需要批准。

我想知道如何更新模型的最佳做法。

  1. 用户修改了一些数据,数据被批准
  2. 用户仍然可以看到旧的数据发送。
  3. 版主批准更改。
  4. 用户看到新的数据

我现在的想法是把它单独作为两种车型。

  1. 用户模型
  2. 剖面模型

用户模型包含当前配置文件的ID,当用户更新他的个人资料,他增加了一个新的配置文件模式,当管理员的批准同样,相关的配置文件模型与用户模型相关联。 (旧的可能会被摧毁)。

其他的想法是

  1. 要对每一个属性2个属性(但编辑将是最小的)
  2. 由于所有的编辑项是字符串,唯一用途是用于展示,实际模型将包含当前值和未批准旧值的转义JSON。

回答

1

目前想法肯定会工作。需要考虑的事情有:

当用户进行2次或更多次更改而没有先前的批准更改时会发生什么?他可能会改变不同的属性,或者对先前更改的属性进行另一个更改。系统必须能够将这些更改合并到一起,因为它们将从不同的基础(不同的模型)分支。

也许更好的解决方案是有一个当前的配置文件和等待批准配置文件(WTBA)。

  1. 当没有需要批准的更改时,用户将看到当前的配置文件。
  2. 用户进行更改,系统将创建一个WTBA配置文件。
  3. 用户看到WTBA配置文件(但没有其他人)。
  4. 用户进行了另一项更改,系统将保存对WTBA配置文件的更改(不创建新配置)。
  5. 主持人批准WTBA配置文件,此时WTBA成为当前和我们回到#1。