- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个项目,我们需要让某些用户输入或更新的数据在添加到“实时数据”之前经历待处理状态。
在准备数据时,用户可以保存不完整的记录。当数据处于待处理状态时,我们不希望数据影响对编辑实时数据的用户施加的规则,例如处理实时数据的用户在输入已处于待处理状态的相同数据时不应遇到独特的限制。
我设想数据更新集将被分组为“数据提交”,并且当有人对提交进行质量控制时,数据将被重新验证和更正/拒绝/批准。
我考虑过两种与存储数据有关的场景:
1) 将待处理状态数据与实时数据保存在同一个表中,但添加一个标志来指示其状态。我可以看到这里存在必须删除约束或使必填字段可为空以支持“不完整”状态数据的问题。然后存在如何处理更新现有数据的问题,您必须添加一个新行进行更新并将其链接回现有的“实时”行。这对我来说似乎有点困惑。
2) 添加镜像事件表的新表并将数据存储在其中,直到获得批准。这将使我能够完全控制现有的事件表,而“待处理”表可以被用户认为他想放入其中的任何内容滥用。这样做的缺点是我最终会在数据库中得到很多额外的表/SP。我正在考虑的另一个问题是用户如何在两个记录之间链接,由此链接到的记录可能是事件表中的记录或待处理表中的记录,但我想在这种情况下,您始终可以获取该记录的副本链接记录并将其视为更新?
这两种解决方案似乎都不完美,但第二个对我来说似乎是更好的选择 - 还有第三种解决方案吗?
最佳答案
您的选项 2 听起来是最好的主意。如果您想使用引用完整性以及通过 DBMS 获得的所有好处,则不能将待处理的数据放在同一个表中。但是不需要非结构化数据 - 待处理数据仍然是结构化的,并且您可能希望数据库在执行规则方面发挥作用,即使是在这些数据上。即使您没有这样做,待处理的数据也非常适合标准表结构。
一组单独的表格听起来是正确的答案。您可以将要更改的行的主键放入待处理表中,以便您知道正在编辑哪个项目,或者正在链接到哪个项目。
我不完全了解您的情况,因此这可能不合适,但一个想法是有一个单独的表来存储正在进行的批量编辑,因为这样您就可以对批处理进行质量控制,或提交一批来住。每个挂起的表都可以有一个批处理键,以便您知道它属于哪个批处理。您必须找到一种方法来控制对同一行的多个待处理编辑(如果您愿意),但这似乎并不是一个很难解决的问题。
我不确定这是否合适,但可能值得研究“主数据管理”工具,例如 SQL Server 的主数据服务。
关于sql - 数据更新审批的DB设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5727765/
只是一个简短的问题。为了节省时间,我们计划只创建一个打开浏览器并指向我们网站的应用程序。后续更新将提供其余功能。 根据您的经验,此应用会获得批准吗?如果不是,我需要做什么才能获得批准? 干杯,RJ 最
我是一名优秀的程序员,十分优秀!