У меня есть приложение n-уровня, среди прочего, включает уровень доступа к данным (DAL) и уровень бизнес-логики (BLL). Я использую SQL-запросы и хранимые procs в DAL, которые я использую для заполнения своих объектов.Имеет ли порядок сортировки по умолчанию в DAL Нарушает разделение проблем
Так вот мой вопрос:
ORDER BY
положение в моих запросах SQL Нарушает ли разделение задач?
С одной стороны, похоже, что логика сортировки относится к бизнес-уровню, потому что именно наши бизнес-правила определяют, почему мы хотим отображать данные в определенном порядке. Кроме того, мы можем отображать одни и те же данные более чем одним способом. Кроме того, не должен ли мой код доступа к данным не беспокоиться о проблемах, например о том, как он отображается?
С другой стороны, базы данных, как правило, более эффективны при сортировке данных, чем код приложения, поэтому по соображениям производительности есть стимул идти с предложением ORDER BY при сортировке в BLL. Кроме того, я не уверен, что указание порядка сортировки по умолчанию в DAL действительно нарушает разделение проблем. Записи должны выходить из базы данных в некотором роде. Почему бы не отсортировать их по наиболее распространенному сценарию? В случаях, когда нам нужен другой порядок сортировки, чем по умолчанию, мы можем сортировать с помощью некоторого метода в BLL.
Не знаю, буду ли я возражать против того, чтобы быть там, но лично я думаю, что мне будет неудобно с моей бизнес-логикой, опираясь на какой-то вид из моего уровня доступа. –
@ChadSchouggins Не уверен, что я следую. Вы имеете в виду, что не верите, что тот, кто выполняет DAL, будет включать логику сортировки? –