Unique swap

Статус
В этой теме нельзя размещать новые ответы.

Solid

Drosera anglica
Unique swap

Сложилась ситуация, когда не знаю как решить поставленную задачу, единственное решение это использование каких-то больших значений integer, но дабы не вносить путаницы, расскажу всё по порядку...
И так, есть таблица, состоящая из следующих полей:
Код:
category_id
category_pid
... (другие поля)
category_order
все приведённые поля имеют тип unsigned integer.
Так же поля category_pid и category_order связанны в уникальный индекс, т.е. дублирование pid + order невозможно.
Требуется поменять местами order двух id. Единственное решение это делать транзакцию + использовать временное "большое" число.
SET order = 4294967295 WHERE id = 2
SET order = 2 WHERE id = 5
SET order = 5 WHERE id = 2
Где order в id = 2 изначально был 2.
Прошу комментариев по поводу более гладкого решение сей проблемы.
 

alexcrown

Новичок
Скажите, а зачем category_order (я так понимаю, это порядок сортировки) обязан быть уникальным?
 

Solid

Drosera anglica
alexcrown
Проще управлять.

-~{}~ 04.03.07 13:53:

Причём, вы наверное не до конца поняли... уникальная только связка пары integer'ов (pid и order).
 

Фанат

oncle terrible
Команда форума
.

-~{}~ 04.03.07 15:25:

а зачем связка пары integer'ов (pid и order) должна быть уникальной?
 

Solid

Drosera anglica
Фанат
Правильнее и удобнее управлять когда order идёт 1,2,3... нежели 1,45,324, правда?
 

Solid

Drosera anglica
Фанат
Тогда прошу свой вариант сортировки категорий.
 

Фанат

oncle terrible
Команда форума
какая связь между удобством управления и порядком цыферок.
и какое отношение к порядку цыферок имеет уникальность

-~{}~ 04.03.07 15:30:

просить будешь на паперти
 

Solid

Drosera anglica
Фанат
Дело в том, что циферки order могут меняться. Более лучшего варианта, чем тот, что я уже представил здесь - не знаю. Единственная проблема это swap, всё, но она решаема через temporary значение.
 

Фанат

oncle terrible
Команда форума
тебе три раза задали вопрос, почему ордер должен быть уникальным.
ни разу ответ на него ты так и не осилил
 

Solid

Drosera anglica
Фанат
осилил, причём в 3-х разных вариациях.

-~{}~ 04.03.07 15:38:

короче, как я понял, никто просто не знает ответа.. вот и всё.
 

Фанат

oncle terrible
Команда форума
о, да
"удобнее управлять" и феерическое "цифры могут меняться".

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

Wicked

Новичок
а зачем связка пары integer'ов (pid и order) должна быть уникальной?
Наверное, следует из определения, что order - это порядковый номер категории в её паренте.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху