powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация сортировки со своими правилами
5 сообщений из 5, страница 1 из 1
Оптимизация сортировки со своими правилами
    #39970181
CostyaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос: Правильно ли создавать справочную таблицу с дополнительными полями, если нужна своё правило сортировки или можно сделать проще, используя процедуры,коллате или что-то еще?

Сейчас в таблице есть столбец Группа
М3
М5
М2
М7
ТС
..
Скаф
Жер
...

Нужен итог сортировки(по возрастанию)
М2
М7
М3
М5
...
Жер
Скаф


Первая часть до ТС всегда одинакова и должна быть в верху при любой сортировке (по возрастанию или убыванию).
Нижняя часть После ТС меняется и всегда должна быть внизу при сортировке.

Как хочу сделать сортировку.
Придется создать справочную таблицу Групп, туда перенести данные,создать foreign key с главной таблицей.
Добавить два поля. Первое boolean - true для верхней части,чтобы всегда была сверху, false для остального
Второе поле smallint. Задаст сортировку для верхней части. Чтобы было М2,М7,М3....
...
Рейтинг: 0 / 0
Оптимизация сортировки со своими правилами
    #39970193
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CostyaN,

просто добавьте одно поле Integer. Верхним значениям задайте значение этого поля от 1 до 1000 (к примеру). Остальным 1001. Сортируйте по двум полям: новому+наименование.
...
Рейтинг: 0 / 0
Оптимизация сортировки со своими правилами
    #39972714
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
числовое поле SORTINDEX наше фсё, лучше bigint, чтоб можно было замутить диапазоны прямо в нем без джойнов и выпендрежа. Заполнять триггером исходя из некой логики, потом банальный ORDER BY SORTINDEX.
...
Рейтинг: 0 / 0
Оптимизация сортировки со своими правилами
    #39972719
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

Числовое может и быстрее, но плохо читаемое.
Я обхожусь обычным текстовым, которое заполняется префиксами, кодами родителей, частью даты и т.д.

Группы, иерархии и т.п. отлично входят.
И сортируется ОК, и читается визуально отлично, если кому-то что-то непонятно в результатах сортировки.
...
Рейтинг: 0 / 0
Оптимизация сортировки со своими правилами
    #39972720
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CostyaN
Первая часть до ТС всегда одинакова и должна быть в верху при любой сортировке (по возрастанию или убыванию).
Это довольно необычное требование.
1. Она абсолютно всегда одинакова? Т.е. количество и состав строк?
2. Это нужно где - в гриде, в отчете, где-то ещё?

Озвученные варианты про доп.поле (неважно, триггером или case-ом) - универсальные,
но в зависимости от ответов на 1 и 2 возможны и менее универсальные варианты.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация сортировки со своими правилами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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