应用程序或数据库级别的业务逻辑

本文关键字:业务 数据库 应用程序 | 更新日期: 2023-09-27 18:26:40

我想确定在application level or database server level中的何处编写业务逻辑。例如,如果我有一个简单的程序,求和总价。用逻辑对所有实体求和来调用过程,与在应用程序级别调用select * 后迭代每个实体并求和有什么区别

数据库级别:

SELECT 
SUM(sod.UnitPrice) 
FROM Sales.SalesOrderDetail AS sod

应用级别:

foreach (var person IN context.GetAllPpl())
{
    price += person.price;
}

从性能角度来看,最好的方法是什么?

应用程序或数据库级别的业务逻辑

如果您的唯一目标是获得UnitPrice的和,那么在SQL查询中进行求和会更高效。这将始终只选择一行一列,而不是每行每列。

SELECT 
SUM(sod.UnitPrice) 
FROM Sales.SalesOrderDetail AS sod