powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с сортировкой!
7 сообщений из 7, страница 1 из 1
Помогите с сортировкой!
    #38333394
Pedro Garciya Lopez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, такой вопрос:

Есть маленькая БД для простенького сайта. В ней таблица которая содержит список всех разделов, количество разделов может быть от 1 до 10, НЕ БОЛЬШЕ. В таблице поля: id (primary key, auto increment) и name (здесь просто название раздела). По id к разделу будет привязываться различный контент из других таблиц.

Пользователь может самостоятельно создавать и удалять разделы, порядок отображения в меню сортируется по id и вроде бы все в порядке. Наконец вопрос: что если пользователь захочет вставить раздел например между 3-м и 4-м, или поменять 5-й и 6-й местами?! Я вижу только один выход, завести еще одно числовое поле, которое будет хранить порядковый номер раздела (от 1 до 10), и каждый раз при вставке раздела или изменении порядка записывать туда номер, а в остальных строках начиная с этой позиции циклом увеличивать значение на единицу, строк ведь не много.

Но этот способ кажется мне каким-то корявым. Может есть какое-то более грамотное решение??
...
Рейтинг: 0 / 0
Помогите с сортировкой!
    #38333408
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не смешивайте роли для полей. id оставьте для идентфикации, его менять не надо. А вот какой-нибудь display_order (т.е. отдельное поле) вполне подойдет для указания порядка сортировки.
А уж как заполнять display_order - вопрос второй. Вам, наверное, проще всего целыми числами. При вставке между 3-м и 4-ым сначала увеличиваете на единицу все значения от 4 и выше, а потом вставляете 4.
...
Рейтинг: 0 / 0
Помогите с сортировкой!
    #38333417
Pedro Garciya Lopez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

я как раз и не собирался смешивать роли, планировал завести еще одно поле. но думал может быть есть способ получше. к сожалению не силен по части MySql, да и вообще с БД имел дело последний раз в 99-м и это был FoxPro :)

спасибо за ответ.
...
Рейтинг: 0 / 0
Помогите с сортировкой!
    #38333477
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pedro Garciya Lopezместами?! Я вижу только один выход, завести еще одно числовое поле, которое будет хранить порядковый номер раздела (от 1 до 10), и каждый раз при вставке раздела или изменении порядка записывать туда номер, а в остальных строках начиная с этой позиции циклом увеличивать значение на единицу, строк ведь не много.

Но этот способ кажется мне каким-то корявым. Может есть какое-то более грамотное решение??

Великолепное решение, и достаточно стандартное, что тебе не нравится -- не понятно.
По-любому оно грамотное. Нужна пользовательская сортировка -- мы её задаём с помощью специально для этого созданного поля.
...
Рейтинг: 0 / 0
Помогите с сортировкой!
    #38333507
Pedro Garciya Lopez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

оно мне уже нравится :)
так скажем решил посоветоваться с более опытными людьми в этом вопросе, говорю же что по теме MySql располагаю достаточно поверхностными знаниями и думал вдруг есть какое-то техническое чудо о котором мне не известно
...
Рейтинг: 0 / 0
Помогите с сортировкой!
    #38333584
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pedro Garciya Lopezи думал вдруг есть какое-то техническое чудо о котором мне не известноДа, есть как раз такое чудо. Именно его вы и придумали :)
...
Рейтинг: 0 / 0
Помогите с сортировкой!
    #38333796
Pedro Garciya Lopez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

какой я оказывается способный ))))
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с сортировкой!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]