2013-10-05 3 views
0

Я создаю немного программного обеспечения, где люди имеют списки рассылки, и они могут помещать элементы в свой список, и это доступно для просмотра другими людьми. У меня есть таблица в моей базе данных, где все организовано под названием birthday lists. Он устроен так:Как я могу организовать свою базу данных, чтобы я мог перемещать элементы вверх или вниз?

Organization of my database

Пример строки будет:

Example row

Поле человек, которому принадлежит элемент, и все элементы для всех находятся в одной таблице , Идентификатор, имя, ссылка и описание довольно понятны. Поле числа - это то, как оно отображается при просмотре страницы списка, поэтому число 10 будет отображаться над 0, и приоритет не имеет отношения к этому вопросу. Это пример того, что происходит, когда я просматриваю список Джимми в своем браузере. (Не волнуйтесь, я прибуду в моих точках в конце концов)

Jimmy’s list

Я добавляю много картин, потому что я никогда не имею никакого смысла, и это самый лучший способ, которым я могу объяснить вещи :)

В любом случае, вот еще одна фотография, показывающая пример базы данных.

Example

Если я смотрел список Рассела в браузере, это будет выглядеть следующим образом:

Russell’s List

Обратите внимание, как элемент $$$$ находится выше степлер, потому что он имеет более высокий номер. Вот для чего это. Если бы я вошел в систему, когда Рассел просмотрел этот список, я бы увидел кнопки, указывающие Move Up и Move Down, которые увеличивают и уменьшают свойство числа на этом элементе. Я продемонстрирую свою проблему с примерным сценарием.

Скажем, Джимми входит в систему, и у него много элементов списка. Он перемещает несколько раз, поэтому становится так, что значение числа на одном элементе намного выше, чем у всех остальных. Затем он перемещает другой элемент вверх, перезагружает страницу и думает, что ничего не сделал, потому что числовое значение второго элемента по-прежнему меньше, чем значение первого. Я надеюсь, что в этом есть смысл. Другая проблема заключается в том, что если значение числа на двух элементах одинаково, это огромная проблема. Дело в том, что у меня это не сработает.

Кто-нибудь знает, как я мог бы заставить эту цифру работать нормально и сказать, как я могу это сделать, чтобы пользователи могли перемещать элементы вверх и вниз по списку? (также, если моя база данных организована плохо, мне бы тоже хотелось знать :))

Спасибо за кучу заранее!

Ending информацию, в случае, если вам это нужно:

  • Я строю это с PHP 5 и MySQL
  • Это на удаленном сервере Linux с GoDaddy
+0

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

ответ

1

При перемещении элемент вверх или вниз одним «перемещением» меняет значения «числа» перемещаемого элемента с «номером» значения предмета, который он перескакивает.

0

Я бы обрабатывать так:

  1. Для перемещения/сортировку элементов, вы можете использовать jQuery UI sortable, например.

  2. Вы можете получить заказ method serialize().

  3. Отправить сериализованные данных на PHP скрипт и свопа/обновить измененные позиции (number в таблице)

  4. обновления набора данных в базе данных.

  5. Чтобы SELECT ваши отсортированные данные используют ORDER BY number DESC (more)

удачи! :-)

Смежные вопросы