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

Привет всем! Кто может подсказать патерны для реордеринга строк в

таблице?
Например, когда 6ю строку передвигают на 1ю, соответственно с 1-5ю должны инкрементировать свою позицию. Ну и остальные кейсы с упорядочиванием. Не хочется велосипеды крутить.

4 ответов

14 просмотров

1) 95% что вам это ненужно, и вы страдаете ерундой. 1.1) Например, если вы делаете это "чтобы красиво" — то нет, это уродство. 1.2) Например, если вы делаете это чтобы реально порядок поменять — делайте какой-нибудь NUMERIC в качестве поля norder и вставляйте промежуточные числа, не меняя всего остального. Ну, или не numeric, а что-то вроде ltree. 2) В 5% случаев это нужно.... Но не так. Если это турнирный ранг, который меняется с каждым апдэйтом таблицы — то обычно быстрее вычислить его непосредственно в момент представления данных (и никуда не записывать). Потому, что игроков мало, и проще их пройти всех по индэксу, чем переписывать табличку. Если это какая-то вещь, которая должна быть зафиксирована, скреплена печатью и представлена в контролирующую инстанцыю — то не надо её каждый раз по любому поводу менять! Перекидал сортировку, устаканил всё — нажал кнопку, порядок у всех проставился, документ закрылся, всё. Одно обновление. В любом случае это редко нужно, обычно — см.п.1.

Ilya Anfimov
1) 95% что вам это ненужно, и вы страдаете ерундой...

Так коллега и спрашивал про одно обновление ;)

Konstantin Zaitsev
Так коллега и спрашивал про одно обновление ;)

Если оно одно то всё сразу и обновить и никаких костылей тут никак не возникнет

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта