Перейдём к рассмотрению вопроса работы с базой данных. В настоящее время нет необходимости писать низкоуровневые SQL-CRUD-запросы для работы с сущностями базы данных, для этих целей созданы ORM (Object-Relational Mapping) обёртки, которые позволяют делать это легко и удобно в стиле ООП. Хотя все рассматриваемые нами фреймворки (а именно: Yii, Symfony и Laravel) не ограничивают нас в средствах работы с базой данных (то есть, если у нас сложная структура БД или нам нравится на каждое действие писать чистый SQL, то мы можем это делать беспрепятственно), однако имеют в своих арсеналах конкретные реализации ORM, которые заметно облегчают взаимодействие с БД. Читать далее «Использование ORM для работы с БД»
Проектируем базу данных
Для проектирования базы данных воспользуемся online инструментом: https://www.draw.io/
На мой взгляд очень удобный инструмент с богатым функционалом для создания диаграмм и схем. Бесплатный.
Как показала практика, лучше сначала всё продумать на бумажке, а затем готовую схему перенести в draw.io, так как в процессе осмысления структуры происходят множественные поправки, и на бумаге это сделать быстрее и легче.
Первоначальная структура базы данных получилась такой:
В процессе развития приложения, возможно, структура будет модифицироваться и расширяться.