Хранимая процедура И / ИЛИ ORM для веб-приложения BI - PullRequest
0 голосов
/ 04 марта 2011

Я создаю веб-приложение для бизнес-аналитики в php 5, которое отображает информацию, полученную из хранилища данных, с высокой степенью нормализации (более 60 таблиц в MySQL).

Мы используем MODx в качестве нашей CMF для организации кода. Пока код в основном процедурный, каждая страница в основном состоит из набора SQL-запросов непосредственно в коде php (фрагмент кода в терминологии MODx) и кода для отображения информации в таблицах и графически.

Мы находимся в процессе создания объектов для наших основных компонентов, помещаем туда запросы sql и используем PDO. Это легко сделать, когда запрос сопоставляется с реальным объектом домена.

Для большего количества BI (агрегация с подзапросами, объединение по 5+ таблицам) или поиска, ориентированного на поиск, мне труднее увидеть, как заменить динамически создаваемый sql. Например, у нас есть функция поиска в веб-приложении с множеством критериев. В зависимости от того, какие критерии выбраны, код php добавляет или удаляет таблицы для присоединения, подзапросы и изменяет предложение where.

Как вы думаете, ORM или Stored Proc могут улучшить производительность / качество кода в этом контексте? Не слишком ли сложна наша модель (более 60 нормализованных таблиц), чтобы к ней можно было напрямую получить доступ из веб-приложения, и что-то вроде datamart (в основном денормализованное представление данных) принесло бы больше преимуществ, чем ORM?

Этот вопрос относится к: хранимым процедурам или или или мапперам

1 Ответ

0 голосов
/ 29 марта 2011

Узким местом, безусловно, будет уровень нормализации - если опция доступна для вас, принятие DWH более звездообразной схемы значительно повысит производительность, поскольку оно предварительно подготавливает данные для потребления вашим приложением BI.

...