Есть таблица с 20000 записями. Раньше оные выводились в алфавитном порядке, но сейчас каждая строка должна занимать ту позицию, которую ей зада?т пользователь.
Т.е., если имеется таблица users:
id | name | 1 Вася 4 Петя 2 Игорь
То, выводилась она соответственно: Вася, Игорь, Петя.
Первая мысль создать новый столбец, например "position" и хранить в н?м число, по которому будет производиться сортировка.
id | name | position 1 Вася 1 4 Петя 2 2 Игорь 3
Теперь, если пользователь на сайте хочет, чтобы Игорь был самым первым, кажется достаточно было бы изменить position Игоря на 1, Васи на 2, Игоря на 3. Но это глупо, т.к. получается большая нагрузка на сервер, при тысячах записей.
Потому, как вариант, можно вычислять между какими строками должна быть перемещаемая, и изменять е? "position" на среднее арифметическое между предыдущей и настоящей строками.
Однако при определ?нных условиях, это число может стать с очень большим количеством нулей в дробной части, что тоже не годится.
Если кто сталкивался, прошу поделиться логикой
Ссылкам по теме тоже буду рад , - по гуглу пока ничего не наш?л.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
LokiDi L0ck
Есть таблица с 20000 записями. Раньше оные выводились в алфавитном порядке, но сейчас каждая строка должна занимать ту позицию, которую ей зада?т пользователь.
Т.е., если имеется таблица users:
То, выводилась она соответственно: Вася, Игорь, Петя.
Первая мысль создать новый столбец, например "position" и хранить в н?м число, по которому будет производиться сортировка.
Теперь, если пользователь на сайте хочет, чтобы Игорь был самым первым, кажется достаточно было бы изменить position Игоря на 1, Васи на 2, Игоря на 3. Но это глупо, т.к. получается большая нагрузка на сервер, при тысячах записей.
Потому, как вариант, можно вычислять между какими строками должна быть перемещаемая, и изменять е? "position" на среднее арифметическое между предыдущей и настоящей строками.
Однако при определ?нных условиях, это число может стать с очень большим количеством нулей в дробной части, что тоже не годится.
Если кто сталкивался, прошу поделиться логикой
Ссылкам по теме тоже буду рад , - по гуглу пока ничего не наш?л.
Link to comment
Share on other sites
11 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.