2016-06-27 3 views
0

Какова наилучшая практика для перемещения строк. Чтобы вы могли изменить порядок элементов. Теперь, если вы создадите новый столбец с именем order_id или что-то в этом роде, это не произойдет, если я удалю или выберу строки.Лучшая практика для обработки позиций строк

Еще один метод, который, я думаю, состоит в том, чтобы просто полностью изменить значения первичного идентификатора, поэтому изменяются только значения, кроме идентификатора. однако я не знаю, что люди обычно используют. Есть так много сайтов, которые дают вам возможность изменить порядок вещей. Как они это делают?

+4

Они сортируют результирующие наборы из SQL-запросов ('order by'). –

+1

Вы используете столбец веса, придайте каждому элементу вес при сохранении новой строки и заказе своих запросов по весу. Когда строка удаляется, она создает пробел, но это не влияет на сортировку. При перемещении строки до определенного веса добавьте +1 ко всем с равными или большими весами. – Johan

ответ

-1

Каждый оператор SQL, который возвращает видимый набор результатов, должен включать предложение ORDER BY, чтобы результаты были согласованы. Стандарт не гарантирует, что порядок строк в определенной таблице будет оставаться постоянным или последовательным, даже если в таблицу не будут внесены явные изменения.

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

Например, если вы решите, что столбец будет содержать порядковый номер, начиная с 1 для первой строки, 2 для второго и т. Д., Тогда вам будет удобно удалять строки, когда их нужно удалить, не имея делать обновления. Однако, если вы вставляете строку, вам нужно указать строку, в которую вы вставляете порядковый номер, соответствующий его позиции, и обновить все строки ниже этого с их новой позицией. То же самое происходит, если вы перемещаете строку из другого места в новое место; строки между новым и старым местоположениями необходимо обновить новыми индексами позиции.

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