|
Оптимизация сортировки со своими правилами
|
|||
---|---|---|---|
#18+
Вопрос: Правильно ли создавать справочную таблицу с дополнительными полями, если нужна своё правило сортировки или можно сделать проще, используя процедуры,коллате или что-то еще? Сейчас в таблице есть столбец Группа М3 М5 М2 М7 ТС .. Скаф Жер ... Нужен итог сортировки(по возрастанию) М2 М7 М3 М5 ... Жер Скаф Первая часть до ТС всегда одинакова и должна быть в верху при любой сортировке (по возрастанию или убыванию). Нижняя часть После ТС меняется и всегда должна быть внизу при сортировке. Как хочу сделать сортировку. Придется создать справочную таблицу Групп, туда перенести данные,создать foreign key с главной таблицей. Добавить два поля. Первое boolean - true для верхней части,чтобы всегда была сверху, false для остального Второе поле smallint. Задаст сортировку для верхней части. Чтобы было М2,М7,М3.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 13:57 |
|
Оптимизация сортировки со своими правилами
|
|||
---|---|---|---|
#18+
CostyaN, просто добавьте одно поле Integer. Верхним значениям задайте значение этого поля от 1 до 1000 (к примеру). Остальным 1001. Сортируйте по двум полям: новому+наименование. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 14:09 |
|
Оптимизация сортировки со своими правилами
|
|||
---|---|---|---|
#18+
числовое поле SORTINDEX наше фсё, лучше bigint, чтоб можно было замутить диапазоны прямо в нем без джойнов и выпендрежа. Заполнять триггером исходя из некой логики, потом банальный ORDER BY SORTINDEX. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 13:46 |
|
Оптимизация сортировки со своими правилами
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, Числовое может и быстрее, но плохо читаемое. Я обхожусь обычным текстовым, которое заполняется префиксами, кодами родителей, частью даты и т.д. Группы, иерархии и т.п. отлично входят. И сортируется ОК, и читается визуально отлично, если кому-то что-то непонятно в результатах сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 13:54 |
|
Оптимизация сортировки со своими правилами
|
|||
---|---|---|---|
#18+
CostyaN Первая часть до ТС всегда одинакова и должна быть в верху при любой сортировке (по возрастанию или убыванию). 1. Она абсолютно всегда одинакова? Т.е. количество и состав строк? 2. Это нужно где - в гриде, в отчете, где-то ещё? Озвученные варианты про доп.поле (неважно, триггером или case-ом) - универсальные, но в зависимости от ответов на 1 и 2 возможны и менее универсальные варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 13:54 |
|
|
start [/forum/topic.php?fid=40&msg=39972714&tid=1560316]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
214ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 570ms |
0 / 0 |