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

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

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

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

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

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

13 ответов

24 просмотра

Насколько большой объём таблицы? Может лучше вьюху сделать, которая будет пересчитывать 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
Не существует универсальных решений Нет смысла обс...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта