Это удивительно обширная тема, но у меня есть несколько советов, которые помогут вам на вашем пути:
Вам следует изучить объектно-реляционное отображение, в котором объект автоматически генерирует SQL-запросы.Просмотрите обзор статей Object-Relational Mapping и Active Record .Это сохранит минимальный код вашей базы данных и облегчит изменение структуры таблицы.
Но здесь нет серебряной пули.Если ваша схема изменится, вам придется изменить ваши запросы для соответствия.Некоторые люди предпочитают иметь дело с этим путем инкапсуляции их логики запросов в представлениях базы данных и хранимых процедурах.Это также хороший подход, если вы последовательны, но имейте в виду, что как только вы начнете писать хранимые процедуры, они будут сильно привязаны к конкретной базе данных, которую вы используете.В их использовании нет ничего плохого, но они значительно затруднят вам переключение баз данных в будущем - обычно это не проблема, а важный аспект, о котором следует помнить.
В любом случае, что угоднометод, который вы выбираете, я рекомендую вам хранить логику базы данных в нескольких классах "Model".Похоже, вы уже делаете что-то похожее на это.Основная идея заключается в том, что каждая модель инкапсулирует логику для определенной области базы данных.Традиционно каждая модель отображается в одну таблицу в БД - так работает класс активных записей Ruby on Rails.Это хорошая стратегия, поскольку она разбивает логику вашей базы данных на простые маленькие «кусочки».Если вы сохраните всю логику запросов к базе данных в одном файле, она может быстро выйти из-под контроля и превратиться в кошмар обслуживания - поверьте мне, я была там!
Чтобы лучше понять "большой"picture ", я рекомендую вам потратить некоторое время на чтение веб-архитектуры Model-View-Controller (MVC).Вы также захотите посмотреть на установленные PHP MVC-фреймворки, такие как CodeIgniter , Кохаха , CakePHP и т. Д. Даже если вы не используете одну из них - хотяЯ рекомендую это сделать - было бы полезно посмотреть, как эти структуры организуют ваш код.