Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Как организовать сортировку лучше?


Автор: Psytodelist 20.4.2016, 13:02
Здравствуйте. Стоит задача с возможностью указывать приоритет позиционирование записи в сртировке. Использую PHP, MYSQL. Предположим, есть 1000 фотографий и я хочу чтобы одна из фотографий была на первом месте, другая на втором, другая на третьем. А через время появится одна фотография, которую я захочу вставить между 2-й и 3-й. Как это лучше организовать? Делать выборку по сортировке по весу? Скажем, у первой фотографии будет вес 1000, у второй 2000, у третей 3000, а когда появится 4-я фотография, которую я захочу поставить на второе место, то я ей задам вес 1500? Как-то это не очень камильфо. Есть альтернативы? Программными методами прибавлять +1 к весу последующих записей? А что если записей будет много? Спасибо.

Автор: Akina 20.4.2016, 13:13
Цитата(Psytodelist @  20.4.2016,  14:02 Найти цитируемый пост)
Делать выборку по сортировке по весу?

Да. 

Цитата(Psytodelist @  20.4.2016,  14:02 Найти цитируемый пост)
Программными методами прибавлять +1 к весу последующих записей?

Да.

Цитата(Psytodelist @  20.4.2016,  14:02 Найти цитируемый пост)
А что если записей будет много?

И что?

Автор: ksnk 20.4.2016, 13:48
Psytodelist, вариант - "вес" делать с типом float и при необходимости "вставить между строчками" - просто ставить весом среднее арифметическое. Нужно только периодически "нормализовать" веса, чтобы точность плавающего не стала проблемой.

Автор: tzirechnoy 20.4.2016, 20:12
Цитата
Нужно только периодически "нормализовать" веса, чтобы точность плавающего не стала проблемой.


"Нормализовать" int гораздо проще. Как минимум, хорошо понятно -- когда это надо делать... И до каких пор это делать можно.
В общем, не связывайтесь с float без необходимости.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)