【问题标题】:how to keep old data record while updating asp .net mvc 5如何在更新asp .net mvc 5时保留旧数据记录
【发布时间】:2015-04-22 04:37:05
【问题描述】:

我正在使用Asp .net mvc5 with EF6 创建一个财务应用程序。我对更新数据库有一个很大的困惑。我想要的是我有Person(e.g. firstname, lastname, address, salary, tax, and so on)。我第一次输入了记录(e.g. John, Smith, US, 3500.00,)。当John Smith 升职时,我会将他的薪水更新为4000.00,而我仍想保留他的旧薪水3500.00。如果我不保留他的3500.00,他的other deductible 费用从他的3500.00 工资将不会reflect correctly 直到他获得3500.00 的最后一天。他的税收数据一直得到3500.00会丢失,反映在4000.00

谁能指导我如何解决这个问题,好吗?感谢您是否可以分享我可以针对此类问题研究的任何资源或链接。提前致谢。

【问题讨论】:

  • 您需要一个包含 PersonID、Date 和 Salary 详细信息字段的附加表(例如 Salaries)

标签: c# sql-server asp.net-mvc database entity-framework-6


【解决方案1】:

你需要创建一个对应于主表Person的表我们称之为Person_log(e.g. firstname, lastname, address, salary, tax,Entry_Date_On_Log and so on)

流程一:

在插入时为Person_log 表和Person 表上的每次更新创建插入、更新和插入记录的触发器。

流程2:

您可以手动(使用查询代码)在Person 表的每个条目上将记录输入Person_log 表。

现在,只要您想计算税金或其他任何东西 对应于一个人的日期,你可以很容易地找到薪水 或来自Person_log 表的人员的任何其他记录,使用 日期过滤器(Entry_Date_On_Log)。

【讨论】:

  • 我也推荐@user3540365的回答。这样,繁重的工作将在 SQL SERVER 上。
  • 你们两个建议使用时间戳吗?感谢您的洞察力。
【解决方案2】:

除了 user3540365 建议的方法还有 2 个方法

方法一

使用变更数据捕获 (SQL Server)

你可以阅读它here

方法二

您可以创建一个日志表并使用输出子句

阅读更多关于输出子句here

我会说方法1真的很简单

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2014-09-05
    • 2011-02-01
    • 1970-01-01
    相关资源
    最近更新 更多