您应该将逻辑添加到应用程序服务器还是数据库

Should you add logic to application server or database

假设我在 5 个不同的城市有 5 家商店。我想知道这个月我每个城市每天赚多少钱。

我有两个选择。

1) 应用服务器上的逻辑:

for (each city)
  for (each day) {
      Query(city, day);
  }
}

这将导致城市 * 天查询。

2) 数据库服务器上的逻辑: 添加单个复杂聚合查询。

这两个选项中哪个是首选?寻找两者的利弊? 哪一个看起来更具可读性?

多次查询数据库以获取来自同一个 table 的数据(据我了解它看起来像)并在数据库可以为您执行此操作时自行处理结果没有任何意义一气呵成。您会给网络、数据库和您的应用程序带来不必要的压力。