【发布时间】:2019-06-03 17:26:06
【问题描述】:
当用户在 UI 中更新表格时,我无法弄清楚如何创建表格的快照(或实例)。
问题是:
我有一个用于“修正”的用户界面。在 UI 中,有一个“修正类型”的下拉列表。修正类型也有自己的用户界面,用户可以在此处选中/取消选中可用修正类型的列表。当用户取消选中修正类型时,该类型将从所有修正的下拉列表中删除。客户要求对修正类型的更改仅影响新修正,而不影响更改之前存在的修正。
因此,如果之前检查了“新建、草稿、已关闭”的修正类型值,并且未选中“草稿”,我仍然需要在 UI 中显示现有修正的所有三个值,然后只显示“新”和“已关闭”的新修订。但随后,他们可以返回并重新打开“草稿”并再次显示,但仅限于在重新打开后创建的修订。
对我来说,这意味着我需要为“修正类型历史”创建一个表。 “修正类型”表有一个修正类型 ID 列,其中所有 ID 都显示为行。我会将它们显示为列,行由生效日期定义——值更改的日期。然后我将 Amendment 链接到 AmendmentTypeHistoryID 并通过查找 AmendmentTypeID 来获取要显示的值。
例如
dbo.AmendmentType
AmendmentTypeID Name CreationDate IsActive
1 New 6/2/2019 1
2 Draft 6/2/2019 1
3 Closed 6/2/2019 1
dbo.AmendmentTypeHistory
AmendmentTypeHistoryID EffectiveDate AmendmentTypeID AmendmentTypeID AmendmentTypeID
1 6/3/2019 1 (New) 2 (Draft) 3 (Closed)
然后你改变它......
dbo.AmendmentType
AmendmentTypeID Name CreationDate IsActive
1 New 6/2/2019 1
3 Closed 6/2/2019 1
dbo.AmendmentTypeHistory
AmendmentTypeHistoryID EffectiveDate AmendmentTypeID AmendmentTypeID AmendmentTypeID
1 6/3/2019 1 (New) 2 (Draft) 3 (Closed)
2 6/3/2019 1 (New) 3 (Closed) NULL
总共有 77 种修正类型的可能性。这不是我可以硬编码的东西,所以我希望我能以某种方式动态地完成它。
有人知道我该怎么做吗?有没有更简单或更好的方法来做我想做的事情?
【问题讨论】:
标签: sql sql-server asp.net-mvc tsql