我有一个 n 层应用程序,其中包括一个数据访问层 (DAL) 和一个业务逻辑层 (BLL)。我在 DAL 中使用 SQL 查询和存储过程来填充我的对象。
所以这是我的问题:
我的 SQL 查询中的子句是否ORDER BY
违反了关注点分离?
一方面,排序逻辑似乎属于业务层,因为是我们的业务规则决定了我们为什么要以特定顺序显示数据。此外,我们可能希望以不止一种方式显示相同的数据。此外,我的数据访问代码不应该不知道诸如如何显示之类的问题吗?
另一方面,数据库在排序数据方面通常比应用程序代码更有效,因此出于性能原因,使用 ORDER BY 子句优于 BLL 中的排序。此外,我不确定在 DAL 中指定默认排序顺序是否真的违反了关注点分离。记录必须以某种方式从数据库中出来。为什么不根据最常见的情况对它们进行排序呢?如果我们需要不同于默认的排序顺序,那么我们可以通过 BLL 中的某种方法进行排序。