能够保存(多个)更改而不影响数据库 - 结构问题

时间:2013-04-05 07:41:30

标签: asp.net-mvc database data-structures visual-studio-lightswitch

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

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

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

编辑:我会尝试用方案进一步解释

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

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

  3. 现在我有两个节省(从第1步和第2步),我改变主意,1中所做的更改是正确的,我打开“savefile”并将更改提交给主数据库。然后我将删除第2步中的“savefile”。

  4. 希望能使情况更加清晰。

    由于

2 个答案:

答案 0 :(得分:1)

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

你可以:

  1. 只需添加某种类型的"状态"列("已提交","未提交"等)到表中,&过滤掉任何"未提交的"显示" real"的任何网格中的记录数据。然后你也可以过滤 编辑网格中的另一种方式,只显示您 "未提交"记录,或者如果您可以保存ID而不是状态 只想看到自己的记录。
  2. 添加另一个表来保存未提交的记录,而不是 "污染"带有额外列的实际表格。
  3. 这有意义吗?

答案 1 :(得分:0)

如果您真的要构建一个事务类型版本控制系统,那么您将面临巨大的工作。

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

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

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

无论哪种方式,用于查找所有记录并确定哪些记录可以进行操作的界面都将是一个挑战 - 永远不要使用原始应用程序。