Манипулировать результатами в GridView RowDataBound или непосредственно в SQL?

У меня любопытный вопрос об эффективности. Скажем, у меня есть поле в базе данных, которое представляет собой просто числовую цифру, которая представляет что-то еще. Например, значение 1 означает, что срок составляет 30 дней.

Было бы лучше (более эффективно) закодировать оператор SELECT, подобный этому ...

SELECT
    CASE TermId
        WHEN 1 THEN '30 days'
        WHEN 2 THEN '60 days'
    END AS Term
FROM MyTable

... и привязать результаты непосредственно к GridView, или было бы лучше оценить поле TermId в событии RowDataBound GridView и соответствующим образом изменить текст ячейки?

Не беспокойтесь о расширяемости или чем-то подобном, меня беспокоят только различия в общей эффективности. Как бы то ни было, база данных находится на веб-сервере.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 243
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

По ряду причин я бы обработал перевод в виде сетки.

Причина №1: ресурс SQL используется совместно. Сетка раздается. Лучшая масштабируемость.

Причина №2: меньшая пропускная способность для передачи пары целых чисел и строк.

Причина № 3: код можно локализовать для других языков, не затрагивая код SQL Server.

Я не понимаю причину №2. Разве пропускная способность не будет одинаковой, поскольку пользователь будет видеть одно и то же независимо от выбранного метода?

Josh Stodola 29.09.2008 20:55

Моя ошибка №2. Я не заметил, что среда была ASP.NET. Я думал о сетке WinForms.

hurcane 08.10.2008 20:50
Ответ принят как подходящий

Эффективность, вероятно, здесь не имеет значения - хотя ремонтопригодность кода имеет значение. Спросите себя - изменятся ли эти ценности? Что, если они это сделают? Что мне нужно делать после 2 лет использования, если эти значения изменятся? Если станет очевидным, что создание сценариев для них на SQL будет означать лучшую ремонтопригодность (легче изменить), то сделайте это в хранимой процедуре. Если позже их будет проще изменить в коде, сделайте это. Выгоды от любого из них довольно низкие, поскольку код совсем не выглядит сложным.

Поле в таблице базы данных с именем TermID будет подразумевать, что оно представляет собой внешний ключ для другой таблицы (возможно, называется «Term»).

Если это так, то, возможно, в этой таблице есть (или должно быть) поле описания, которое может содержать текст «30 дней». Вы можете / должны присоединиться к этой таблице, чтобы получить описательный текст.

Хотя это соединение не может повысить эффективность, оно достаточно легкое, чтобы не мешать.

Нет, другой таблицы с описаниями у нас нет. Эти числа установлены внутри компании и хорошо известны.

Josh Stodola 30.09.2008 20:49

Другие вопросы по теме