我使用实体框架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-和第三是使用触发器。
在计算方面,哪种方法是最优化的方法,头顶和方法;时间?
如果有其他任何方法,请告诉我。
答案 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上 返回总价 )