1

我正在开发一个业务 Web 应用程序,它将维护一个包含多个表的数据库。要求之一是应该能够“保存您的工作”而不影响数据库,然后再将其拾取并继续工作。必须支持多个“储蓄”。

这个管理工具将在 ASP.NET MVC4 或微软的 LightSwitch 中开发,我还没有决定。

我的问题是我不知道如何在结构上解决这个问题,有没有任何已知的技术可以解决这个问题?我需要有人帮助我指出正确的方向,我被困在这里..

编辑:我将尝试用一个场景进一步解释

  1. 我对一行进行了更改并保存,但更改应该只对我可见(不影响主数据库)。

  2. 我意识到 1. 中的更改很糟糕,并选择从更改同一行中的数据重新开始,我也对另一行进行了更改。我保存了这些更改(但仅限于我)

  3. 现在我有两个储蓄(从第 1 步和第 2 步开始),我改变主意并且在 1. 中所做的更改是正确的,我打开那个“保存文件”并将更改提交到主数据库。然后,我将从第 2 步中删除“保存文件”。

希望这能让情况更清楚。

谢谢

4

2 回答 2

1

我能想到的最简单的方法是让数据库为您完成工作。

你可以:

  1. 只需将某种类型的“状态”列(“已提交”、“未提交”等)添加到表中,并过滤掉任何显示“真实”数据的网格中的任何“未提交”记录。然后,您还可以在编辑网格中过滤另一种方式,仅显示“未提交”记录,或者如果您只想查看自己的记录,则可以保存 ID 而不是状态。
  2. 添加另一个表来保存未提交的记录,而不是用额外的列“污染”实际表。

那有意义吗?

于 2013-04-05T12:13:15.780 回答
0

如果你真的要构建一个事务类型的版本控制系统,那么你有一个巨大的工作要做。

查看一些流行的工具,如 SVN,了解它们支持的复杂程度和功能。

回滚数据库内的部分事务——尤其是具有约束和触发器的事务将非常困难。几乎所有事情都会在某个地方遇到问题。

您还可以考虑将未提交的事务存储在数据库之外——比如在一些本地 XML 结构中——然后在需要时只提交一次组件。

无论哪种方式,用于查找所有记录并确定要处理哪些记录的界面都将是一个挑战——不管原始应用程序。

于 2013-04-05T12:26:22.393 回答