业务需求
我有一个数据库,其中保存了有关文档及其相关包的信息。每个文档可以有多个包,每个包都有它的详细信息和产品列表。
当文件被认证后,它们不能被进一步编辑,但用户可以在将其附加到另一个文件之前编辑包裹详细信息,但在认证文件中应保留旧数据。
注意事项
所以我的问题是,当用户更新包裹详细信息以创建新文档时,在前端视图中,即使在经过认证的文档中,包裹详细信息也会更新,因为我的数据库中只有一行用于包裹详细信息。
我正在评估每次更新保留多行的可能性,以防止丢失已认证文档中更新前保留的数据,但它会导致太多工作。我想知道如何有效地设计相关数据库以避免此类问题。
在数据库中实现需求的最简单方法是创建两个单独的表。然后,你就不要
GRANT UPDATE
放在用来存储“最终文档”的表集上了。这假定最终用户使用不拥有表的帐户登录。这强制执行了“不能修改最终文档”的要求,即使用户使用不同的应用程序来处理文档/包也是如此。
您需要创建数据库端过程(T-SQL、PL/SQL 等)来处理 和 之间的数据
not_final_documents
管理final_documents
。