【发布时间】:2021-12-05 10:23:47
【问题描述】:
我有一个场景,cms 用户通过应用程序/CMS 对数据进行的任何更新/更改都需要管理员/授权用户的批准。单个文档/记录中的一次更新可能有多个更改。此批准不会实时完成,可能需要几个小时或几天。授权人也可以拒绝更改。因此,在这种情况下,在批准或拒绝之前不将其提交到数据库的情况下,保持这些数据有效的最佳方法是什么。我应该创建临时表还是重复表以将这些数据临时保存在数据库中?但这会导致大量临时表(每个表一个)。或者在开发人员/应用程序/java端还有其他选择吗?我在这里使用 Oracle 和 Java。
【问题讨论】:
-
您需要提交草稿/未批准的版本。数据库或应用程序崩溃的原因有很多,您真的不希望用户丢失他们的工作。我对您的工作流程了解不多,无法给出明确的答案,但您可能需要一个处理文档版本的数据结构,以批准状态区分。这可能涉及到多个表,这取决于许多考虑因素。
-
您需要区分功能流(待批准、已批准等)和数据库完整性。你必须始终承诺。有不同的技术,每个阶段都有不同的表,在同一个表中使用标志来检查任何记录的演变。您也可以使用 SCD 逻辑。
标签: java oracle database-design