设计问题使用什么模式

rah*_*hul 3 database-design design-patterns

问题描述: 我们要求将实体的快照临时存储在数据库中,直到一段时间,直到所有批准数据的过程完成为止.完成所有批准后,数据应永久保存在实际表格中.

例:

  1. 考虑一个名为"用户"的实体.创建用户的一种方法是通过"创建帐户流程".
  2. "创建帐户流程"应捕获用户的所有信息,并将其存储在数据库的临时表中.
  3. "帐户审批流程"应使用该数据来运行其验证流程.
  4. 成功完成所有验证后,用户数据将持久保存到实际表中.

问题: 存储在"创建帐户流程"期间输入的用户数据的位置.此外,用户数据应该是可编辑的,直到验证过程完成.

Joe*_*Joe 9

我通常会有一个User表,其中包含"Approved"列.大多数查询只会检索此标志为true的行.例如,你可以创建一个视图"ApprovedUsers"作为

SELECT ... FROM Users WHERE Approved = 1
Run Code Online (Sandbox Code Playgroud)

(其中......是除Approved列之外的所有列).

然后你不需要乱用两个表.除帐户审批流程以外的大多数客户端都可以访问"ApprovedUsers"视图,但不能访问基础表.