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

Фундаментальный вопрос, а я не знаю ответа... Как правильно организовать описание

сортировки в БД?

Есть строчка, и её могу перемещать в таблице куда угодно по порядку, что раздвинет список,
и нужно что бы было записан порядок этих строк.

Самый очевидный вариант:
После каждого перемещения переписывать OrderNum у всех строк.
Но есть ли метод лучше?

С этим должен был столкнуться ещё при сортировке ToDo карточек...😥

13 ответов

19 просмотров

Насколько большой объём таблицы? Может лучше вьюху сделать, которая будет пересчитывать ordernum, чем апдейтами долбить базу?

Николай-Threadripper Автор вопроса
Nick Nalbantov
Насколько большой объём таблицы? Может лучше вьюху...

Не понимаю что это значит. Кто и как пересчитывать, и основываясь на каких данных?

Nick Nalbantov
Насколько большой объём таблицы? Может лучше вьюху...

Вы не можете функцией над данными заменить пользовательский ввод

Roman Sergeev
Вы не можете функцией над данными заменить пользов...

А, я не понял, что пользователи меняют сам ordernum. Тогда да.

Николай-Threadripper Автор вопроса
Roman Sergeev
На основании работы аналитика и ux

Не понял. Вот у меня есть uint поле, что дальше? Или какие поля и операции с ними должны быть?

Николай-Threadripper Автор вопроса
Nick Nalbantov
Насколько большой объём таблицы? Может лучше вьюху...

Таблицы могут быть разного объёма. От до 10, до сотен. Точнее наборы данных, так как в таблице все строки проекта, но разделены по пользователям.

Николай Threadripper
Не понял. Вот у меня есть uint поле, что дальше? И...

Вам надо понять, сколько таких элементов будет у пользователя и какие сценарии перемещений ожидаются. Можете для начала попробовать себе ответить, чем не подойдёт нумерация с шагом 100

Николай-Threadripper Автор вопроса
Roman Sergeev
Вам надо понять, сколько таких элементов будет у п...

Увеличенный шаг, это например 0, 100, 200, 300, и когда хотим поменять 300 перед 1, ставим его номером 1. Получаем 0, 1, 100, 200. И так можно 99 раз, а потом сдвигать следующие и тд. Это сложно только усложнившейся логикой🧐

Да. Но не апдейтить всё - правильное решение для классических СУБД. Но, еще раз, если у вас на юзера этих записей десятки, то можно не думать вообще

Николай-Threadripper Автор вопроса
Roman Sergeev
Да. Но не апдейтить всё - правильное решение для к...

Этот вопрос не только для юзеров, а для очередей постановки задач нужен, очередей, приоритетов и тд. Где строк может быть Очень много, уже именно миллионы в конкретной очереди, где нужно что то двигать.

Николай Threadripper
Этот вопрос не только для юзеров, а для очередей ...

Не существует универсальных решений Нет смысла обсуждать что-то без уточнения вводных

Николай-Threadripper Автор вопроса
Roman Sergeev
Не существует универсальных решений Нет смысла обс...

Понял, постараюсь найти уже описанные методы. А по началу буду сортировать просто лишь бы работало.

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

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

а через 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
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
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
Карта сайта