Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Правильная архитектура магазина под мои задачи?

Приветствую!

Появилась задача написать интернет-магазин, но возникло несколько вопросов относительно относительно подходов написания логики:

1. Каким образом определять, что перед нами страницы магазина, или простые текстовые (новостные например) страницы?
Решил следующим образом: в роутере указал, что если в url найден /catalog/ значит перед нами магазин и нужно обрабатывать его контролером магазина... Следовательно, если /catalog/ не найден, то это простые страницы и обрабатываем их другим контролером.
Верно так поступать?

2. Далее появилось уточнение тз, что необходимо иметь возможность задавать url из админки.
Решил следующим образом: получаем url и после того, как определились что перед нами (страницы сайта или магазина) - ищем запись страницы в БД с указанным url, и если он найден - то все ок, в ином случае - 404.
Верно так поступать?

3. Далее еще появилось уточнение тз. Нужно иметь возможность задавать url любого формата, т.е. они не обязательно должны идти через /catalog/. Они могут быть типа /catalog1/, /catalog_vasya/ итп...
Решил следующим образом: получаем url, ищем в БД запись с указанным url и если такая имеется, то в этой же строке в БД смотрим тип обработчика страницы (page, page_cat, product, product_cat итп). На основание полученного типа обработчика - обрабатываем и нашу страницу.
Верно так поступать?

4. И последний вопрос, касающийся нагрузки для БД: если брать простой select-запрос из единственной таблицы в БД (общее количество записей в таблице - 100к), который будет возвращать 10-50 записей. Сколько таких запросов в секунду сможет выдержать MySql? И если не MySql, то какую БД использовать, что бы потянуть большие нагрузки?

Спасибо!
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Веб-разработка
Учим yii: https://youtu.be/-WRMlGHLgRg
1,2,3 - должен быть отдельный компонент, допустим urlManager, который при создании имеет конфиг, он парсит урл на основании этого конфига и решает, какой контроллер запустить.
4 - зависит от сервера, зависит от таблицы, зависит от запроса. Простой select - это какой?
И если не MySql, то какую БД использовать, что бы потянуть большие нагрузки?

тут прямые руки и мощности сервера решают больше, чем тип. Миллионы магазинов работают на mySql. Какие-то работают хорошо, какие-то плохо. Потому что по разному сделаны.
А зачем вообще писать свой магазин? Есть куча готовых cms, ну или framework-ов, если нужна своя cms. Почему голый php?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы