powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Порядок полей при выборке
8 сообщений из 8, страница 1 из 1
Порядок полей при выборке
    #39971598
Sashaua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, возможно глупость буду спрашивать...
Есть таблица моделей
IDNAME_MODELCODE_MODELUNIT_MODELBARCODE_MODELи еще несколько полей
В 95 случаев модели выбираються в виде
Код: sql
1.
select CODE_MODEL||NAME_MODEL,..... from MODELS  


Захотели хотелку чтобы можно было менять порядок полей при выборе моделей, и это было настройкой.
Например:
Код: sql
1.
select CODE_MODEL||NAME_MODEL,..... from MODELS  


или
Код: sql
1.
select NAME_MODEL||CODE_MODEL,..... from MODELS  


или
Код: sql
1.
select NAME_MODEL||BARCODE_MODEL,..... from MODELS  


Вопрос как можно сделать это легантно не плодив кучу if оф. Например через таблицу настроек или как то еще. Как такой вопрос решают по правильному?
Заранее спасибо.
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39971606
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua
не плодив кучу if оф.
Кнопку "Сделать всё хорошо"?
На клиенте, через настройку, используемую в ифах.
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39971607
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

в исходном сообщении почему-то все вытаскивается в один столбец, конкатенацией.
И я х.з., как потом приложение будет разбирать, в каком порядке какие стольбцы идут.
Поэтому да,
- конкатенацию отменить
- крутить порядок столбцов в гриде на клиенте. И там же сохранять.
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39971608
Sashaua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,
В базе это два разных поля NAME_MODEL и CODE_MODEL
На клиенте это действительно в один столбец конкатенацией (так было в ТЗ)
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39971610
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashauaНа клиенте это действительно в один столбец конкатенацией (так было в ТЗ)

Так ты определись: конкатенация у тебя на сервере или на клиенте. В первом сообщении она
таки на сервере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39971621
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если варианты склейки жестко привязаны к конкретным записям MODELS то можно подумать над таким вариантом:
- в MODELS добавить поле FULL_NAME
- заполнять триггером на основании типа записи (если таковые возможно выделить, конечно)

Ну и соответственно, выбираешь всегда FULL_NAME но для разных MODELS оно может быть собрано по разному.

Минусы
- избыточность данных на сервере
- следить за обновлением FULL_NAME если именились составляющие его части

Плюсы
- не нужно морочиться с запросом, он всегда одинаковый
- если нужно поискать в FULL_NAME - то пожалуйста, не нужно выяснять что и как склеено
- FULL_NAME может быть проиндексировано (если не слишком большое), что может ускорить какие-то запросы (но, естественно, может и замедлить)
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39972373
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможных вариантов - вагон. :)
Ежели порядок склейки зависит от данных - можно изобразить сложный запрос, который это учтёт или предгенерить склеенное значение - см ответ 22154859 от fraks.
Ежели клиенты хотят видеть какие-то фиксированные варианты - можно на клиенте или сделать или по запросу на вариант или генерить поля со склейкой и в запрос вписывать.
Так же можно в запросе вернуть все исходные поля, а на клиенте склеивать указанные отдельным местом перед показом.
Как оно будет проще/изящнее в программе - зависит от остального дизайна системы, ну и выбора разработчика. :)
...
Рейтинг: 0 / 0
Порядок полей при выборке
    #39972711
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonal
Возможных вариантов - вагон. :)
А как же самый очевидный? Написать обертку в виде хранимки GET_MODEL_NAME(id, тут_пачка_необязательных_настроечных_параметров) и все иф-ы спрятать в ней
select g.*, m.* from MODELS m LEFT JOIN GET_MADEL_NAME(m.id,0,1,1,1,0,0,null, ...) g on 1=1
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Порядок полей при выборке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]