2016-08-29 5 views
0

У меня есть база данных MySQL, полная продуктов, каждый продукт имеет категорию. Я хочу, чтобы владелец магазина мог изменить порядок, в котором товары отображаются на сайте, так как он любит возиться с порядком.Показать заказ изделия на основе столбца заказа

Моя первоначальная мысль состоит в том, чтобы иметь колонку заказа продукта, но есть много проблем с этим, так как вам потребуется, чтобы каждая категория продуктов имела отдельный заказ, и все продукты находятся в одной таблице, то есть нужно было бы стул в позиции 1, а также таблицу в позиции 1, это определенно достижимо, однако большая проблема заключается в том, что если я хочу изменить расположение стула2 на позицию 1, тогда мне придется обновлять каждую колонку других продуктов. Это дорого стоит вычислить, чтобы запускать потенциально 100 запросов каждый раз, когда я изменяю порядок.

Должен быть простой способ сделать это. Я использую MySQL и PHP. Любая помощь очень ценится.

Спасибо.

+0

Похоже, у вас есть отношение «многие ко многим» между категориями и продуктами. почему вы не помещаете заказ в промежуточную таблицу –

+0

Это имеет смысл, но это все еще не останавливает эту проблему необходимости обновлять каждый заказ продукта в категории x, когда вы меняете заказ? @ShadyAtef – Ben

+0

Нет. Плохо это не так. –

ответ

1

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

+0

Кажется, что нет расчетно-дешевого или простого способа реализации этого, Я просто нашел подобный вопрос, заданный здесь, и никакого реального ответа не было найдено. Спасибо за Ваш ответ. – Ben

+0

Думаю, вам придется либо делать абсолютные идентификаторы (которые дороги, но точны), либо относительные идентификаторы (которые дешевы, но нечеткие). Если вы когда-нибудь найдете реальный ответ, держите меня в курсе. – Iain

+0

Будет делать Iain, спасибо! – Ben

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