设计问题:使用哪种模式?

3
问题描述: 我们有一个要求,需要将实体的快照暂时存储在数据库中,直到所有审核数据的流程都完成一段时间。一旦所有的批准都完成,数据就会被永久地保存到实际表中。 示例:
  1. 考虑一个名为“用户”的实体。创建用户的一种方法是通过“创建账户流程”。
  2. “创建账户流程”将捕获用户的所有信息并将其存储在数据库中的临时表中。
  3. 数据将由“帐户审核流程”使用以运行其验证过程。
  4. 在所有验证成功完成后,用户数据将被持久保存到实际表中。
问题: 在哪里存储“创建账户流程”期间输入的用户数据。此外,在验证过程完成之前,用户数据应该是可编辑的。

这听起来像是一道作业题。请不要发布作业并期望别人为你完成所有工作。如果你必须发布作业,请明确标注,并展示你已经完成了哪些工作以及你卡在哪里了。 - Dave Kirby
2个回答

9

通常情况下,我会有一个单独的用户表,其中包含一个名为“Approved”的列。大多数查询只会检索标记为真的行。例如,您可以创建一个名为“ApprovedUsers”的视图:

SELECT ... FROM Users WHERE Approved = 1

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

然后,您就不需要在两个表中进行操作。除了账户批准流程以外的大多数客户端都可以访问“ApprovedUsers”视图,但不能访问底层表。


0

这要看情况而定。当你预期有很多用户注册,并且拥有许多列和需要多个连接的大型用户表时,你可能想要拆分表格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接