Я создаю веб-приложение для бизнес-аналитики в php 5, которое отображает информацию, полученную из хранилища данных, с высокой степенью нормализации (более 60 таблиц в MySQL).
Мы используем MODx в качестве нашей CMF для организации кода. Пока код в основном процедурный, каждая страница в основном состоит из набора SQL-запросов непосредственно в коде php (фрагмент кода в терминологии MODx) и кода для отображения информации в таблицах и графически.
Мы находимся в процессе создания объектов для наших основных компонентов, помещаем туда запросы sql и используем PDO. Это легко сделать, когда запрос сопоставляется с реальным объектом домена.
Для большего количества BI (агрегация с подзапросами, объединение по 5+ таблицам) или поиска, ориентированного на поиск, мне труднее увидеть, как заменить динамически создаваемый sql. Например, у нас есть функция поиска в веб-приложении с множеством критериев. В зависимости от того, какие критерии выбраны, код php добавляет или удаляет таблицы для присоединения, подзапросы и изменяет предложение where.
Как вы думаете, ORM или Stored Proc могут улучшить производительность / качество кода в этом контексте?
Не слишком ли сложна наша модель (более 60 нормализованных таблиц), чтобы к ней можно было напрямую получить доступ из веб-приложения, и что-то вроде datamart (в основном денормализованное представление данных) принесло бы больше преимуществ, чем ORM?
Этот вопрос относится к: хранимым процедурам или или или мапперам