Дата последнего изменения: 23.09.2021
Есть несколько схем работы с БД.
Работа с БД напрямую, через функции PHP, обеспечивает скорость разработки, гибкость, но вызывает сложность поддержки. Такие проекты делаются быстро, в срок, но ими сложно пользоваться и сложно их поддерживать. Можно рекомендовать для простых проектов. Для больших и средних - не рекомендуется.
Схема работы через прослойку, реализованную на основе шаблона проектирования TableModule. В этом случае работа с базой данных идёт через какой-то класс, через какой-то объект. Этот объект представляет собой интерфейс доступа к таблице. Преимущество такого подхода в том, что работа с БД инкапсулируется в каком-то классе, какой-то сущности. И любые модификации идут через эту сущность. При этом упрощается развитие, поддержка и эксплуатация проекта. Недостаток в том, что такая реализация сложнее, если проект разрабатывается без какого-либо фреймворка, где это уже реализовано.
На проектах со сложной предметной областью, со сложными сущностями иногда полезно использовать ORM. Конкретнее, паттерны:
На этапе разработки архитектуры надо подумать о горизонтальном масштабировании Базы данных, потом может быть поздно. О веб-кластере надо задумываться уже на этапе прототипа, если проект большой и высоконагруженный. Оптимальнее всего, как всегда, использовать какой-нибудь фреймворк, который уже умеет это делать, чем самостоятельно решать вопросы:
Для слабых и средних команд рекомендуется использовать какой-то фреймворк, с которым лучше всего знакома команда. Это убережёт от множества проблем и рисков и сократит затраты на разработку проекта (за счёт того, что фреймворк даёт готовую архитектуру - её не надо писать, она уже есть).
Сильные команды с немалым опытом могут позволить себе разработку "с нуля", если... если им это позволит клиент по срокам и финансированию.