实现计算列的最佳方法是什么?

时间:2015-06-06 07:25:12

标签: .net sql-server asp.net-mvc entity-framework optimization

我使用实体框架6和数据库第一种方法来构建项目,
假设这两个表:

Tasks
id | taskName | taskPrice
1  | Making UI| 100
2  | Debugging| 70

和第二个表:

Employees
id | Name | spentHours| taskId | *totalPrice*
1  | Iman | 10        |  2     |  (10 * 70) = 700
2  | Sam  |  5        |  1     |  (5 * 100) = 500 

我需要使totalPrice值可用于我项目的所有部分,因此最好不要为每次使用计算它。
为了实现这一目标,到目前为止我已经解决了这三个问题: 1-我可以为totalPrice分配一个列并更新它的值,我认为这是最优化的方式,因为如果taskPrice发生变化,我需要重新计算&更新totalPrice值。

2-秒方法是使用存储过程。

3-和第三是使用触发器。

在计算方面,哪种方法是最优化的方法,头顶和方法;时间?
如果有其他任何方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以在DDL中拥有计算列。 CREATE TABLE tablname ( id int, name varchar(20) spenthours int, taskid int, fn_totalprice(spenthours,id)as totalprcie)

该函数可以创建函数fn_totalprice spenthours int,id int 如 (   SELECT(e.spenthours * t.taskprice)作为总价    来自员工e    内部联接任务在e。@ id = t.id上      返回总价 )