@egorkozelskij

Как хранить список часто меняющегося порядка в Postgres?

Здравствуйте!

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

Например:
id --- name
1 --- item_1
2 --- item_2
3 --- item_3

Задача максимально эффективно хранить элементы, если будут появлятся задачи типа: сделать элемент item_3 вторым по порядку.

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

Находил еще вариант с строковым индексом

id --- name
'a' --- item_1
'b' --- item_2
'c' --- item_3

И после перестановки нужно только вычислить новый индекс 1го элемента:
id --- name
'a' --- item_1
'ab' --- item_3
'b' --- item_2

И как я понимаю в последнем случае логика вычисления индекса ложится на сторону сервера, а не бд?
Подскажите, как решается подобная задача в БД?
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester
http://iczin.su/hexagram_48
проблема надумая
- с точки зрения БД, предпочтительно {id, name, order}
- менять порядок логично в промежуточной логике (в зависимости от архитектуры, она может быть и на фронте, и на на беке, и на мидл леере).. и при необходимости сохранять изменения

ps egorkozelskij, если вас устроит key-value, есть https://www.aerospike.com/lp/aerospike-community-e... но кажется там, все равно, стартовая конфигурация железа от 8 Гб RAM
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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