Я создаю веб-сайт EC для клиента, и у менеджера проекта возникли некоторые странные идеи, и я изо всех сил пытаюсь реализовать то, что он продал клиенту.
Вот моя основная проблема и краткое описание того, как настроена система: продукты находятся внутри категорий, категории могут быть дочерними элементами другой категории. Таким образом, категория представлена в виде дерева на левой боковой панели веб-сайта.
Пользователь может просматривать любую категорию, даже не являющуюся «конечной» категорией, если пользователь нажимает на неконцевую категорию, такой список должен быть представлен, например, в категории уровня 1 (то же самое применимо к категориям уровня 2):
big category 1
category level ( 3 or 2 )
product 1
product 2
product 3
category level ( 3 or 2 )
Вещи также должны иметь постраничное отображение и присутствовать по 5 продуктов на каждой странице. Плюс категории должны быть упорядочены так же, как они появляются в меню слева ... моя схема БД такая:
+-------------+ +-------------+
+ category + + product +
+-------------+ +-------------+
+ category_id + + product_id +
+ parent_id + + category_id +
+-------------+ +-------------+
Я действительно не могу понять, как мне следует кодировать SQL, чтобы убедиться, что продукт отображается в том порядке, в котором они должны (например, заказ продуктов и категорий имеет меню).
Также меня беспокоит производительность всей установки: если пользователь выберет категорию, не являющуюся «листом», мне придется искать по всей дочерней категории и создать большую категорию IN (id1, id2, id3), и я знаю по многолетнему опыту Оператор IN не работает.
Если кто-то столкнулся с таким же дизайном / проблемой и у вас есть совет, как это сделать, я был бы благодарен.