@Mr-Governor
Губернирую

Как делать «многоуровневые» страницы, как в интернет магазинах?

Не знаю как это называется. Но вот, например: Заходишь ты в интернет магазин, а там категория, выбираешь, там еще подкатегория, выбираешь, там еще. Получается для того что бы дойти до нужно товара, нужно пройти несколько уровней страниц.
Хочу сделать примерно такой же сайт. Так, для практики. Но не знаю как все это хранить.
- Может для каждой категории и подкатегориям и ... N-подкатегории создать отдельные страницы?
Может получится очень много страниц. А что если категории придется часто добавлять\удалять?
Но, ведь, так дело не пойдет.
А как вообще хранят такие сайты?
Создавать для каждой под категории отдельные таблицы в БД?
А как ссылать друг к другу?

Еще слышал (но не знаю как их делают) про хлебные крошки, которые запоминаю путь.

В примере с интернет магазином: А что если на один и тот же товар можно прийти из разных категорий.
Ну, например если товар одновременно одежда и сувенир (это я так, к примеру).

Вообщем, фантазировать я могу долго. Помогите пожалуйста разобраться с этой темой. Очень хочу понять как все это делается.
  • Вопрос задан
  • 246 просмотров
Пригласить эксперта
Ответы на вопрос 2
AccessDenied80
@AccessDenied80
Web разработка
nested sets
Ответ написан
Комментировать
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Представь систему как кучу массивов с данными.
Страница - массив с данными
Товар - массив с данными
Модель - массив с данными

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

Таким образом для сайта тебе нужно иметь кучу страниц (массивов)
Каждый из этих массивов может одновременно быть моделью и товаром, или моделью, или товаром, или вообще просто страницей.

То есть на каждый такой массив будет несколько связей и относительно каждой связи будут собственные данные.

При выводе страницы твоя задача собрать все что ты знаешь об этой странице - данные товара, данные модели, данные самой страницы.

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

В конце у тебя получится массив страницы со свойствами. Его выводи на верстку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы