169 похожих чатов

Не обязательно свои. Если видели просто примеры, то тоже подойдёт. У

меня почти всегда все решения бьются на пункте "главное, чтобы сортировка была стабильной".
Из предложений, вроде гитхаба и подобных api, видел сортировки по id и timestamp создания записи. То есть довольно уникальным вещам.
По моей практике бизнесу это почти никогда не достаточно. И им надо, например, по не уникальным названиям или создателю записи отсортировать.

Про курсоры на первые/последний 5 страниц не совсем понял. То есть всё равно получаем из базы записей с этих страниц и генерируем страницы? Относительно большой минус по сравнению с тривиальным расчетом страниц при limit/offset подходе.

1 ответов

10 просмотров

ну, сортировка может быть стабильной в любом случае. Если есть timestamp, хорошо. Если нет timestamp, то стабильность можно обеспечить путем вторичной сортировки по тому же первичному ключу (или по его хэшу, если возможность вычислить относительный порядок ключей нежелательна), который, я подразумеваю, есть всегда. Т.е. после любой пользовательской сортировки, которая возможно имеет повторяющиеся ключи, потом сортировать по тайстампу (если есть), потом по хешу первичного ключа - и стабильность достигнута.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта