【问题标题】:Which layer for a change saving method? [closed]更改保存方法的哪一层? [关闭]
【发布时间】:2015-06-24 12:29:48
【问题描述】:

我正在为简单的操作开发我的金融应用程序。但我需要能够记录对我的记录所做的任何更改。我将 C# ASP.NET 用于我的应用程序代码,将 MS SQL 2014 用于我的数据库。

我的问题是:哪个更好?

应用层:在代码中编写一个方法,在 DB 的历史表中创建记录?

数据库层:编写触发器/过程,在数据库的历史表中创建记录?

我主要关心的是性能 - 该应用程序安装在我家的 IIS 服务器上,因此我需要对其进行微调,这样它对我的用户来说不会滞后,并且不会给我的服务器带来很大的工作量。

【问题讨论】:

  • 这个操作多久执行一次?
  • 我们每天记录大约 5 笔交易,每笔交易大约有 30 个(用户填写)字段......所以每天大约有 150 条记录到历史记录表中。
  • 这没什么好担心的。只需在您的数据访问策略中保持一致并选择更适合您的方式。因此,您不会遇到性能问题

标签: c# asp.net sql-server performance


【解决方案1】:

这与偏好和可维护性有很大关系。

为了可维护性,我自己总是采用分层方法。

这是一个例子。

假设您的 SQL 插入和更新分散在整个代码中。然后,有一天,您的数据库发生了某种变化,您必须逐一查找这些插入和更新,并一一进行更改。

为了论证,您还可以创建一个函数来执行所有这些插入和更新,并每次从您的应用程序中调用该特定函数。这会起作用,但可能会变得混乱,因为您最终会为不同的表、视图等提供很多这样的功能......

现在假设您使用了分层方法。然后,您只需找到对一个特定表进行所有更新和插入的类,并在那里进行更改。应用程序的其余部分可能甚至不需要知道这种变化。

性能(在我看来)并不是一个真正的因素。制作一个物体根本不昂贵,但很难衡量。所以我会说采用分层方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多