2009-02-02 2 views
3

Меня беспокоит, могут ли Rails обрабатывать типы сложных агрегатов, которые необходимы для финансового приложения, и, в частности, может ли ORM эффективно их обрабатывать. В финансовом приложении, которое я собираюсь использовать для этого, необходимо сделать много отчетов о подробных финансовых данных, агрегированных по-разному. Без поддержки в Rails ORM мне нужно будет написать прямой SQL. Но я обеспокоен тем, что, как только я начну это, другие части Rails могут работать не так, и в результате я могу в конечном итоге использовать Rails для своих маршрутов и совсем немного. Является ли это действительной заботой или я беспокоюсь об этом без нужды?Ограничивает ли Rails ORM возможность выполнять агрегацию?

+1

Замечательно сформулированный и совершенно безответный вопрос! Что конкретно вас беспокоит, что вы, возможно, не сможете это сделать, например, с примером? Если это не является конкретным, то, по крайней мере, успокоиться, зная, что AR делает SQL легко доступным для менее мирских ситуаций. –

ответ

3

Ограничения ActiveRecord являются одной из причин, по которым у меня возникли проблемы с использованием Rails в научной среде. Вы можете проверить альтернативы рубин ORM о том, что сделать это немного легче работать с устаревшей базой данных:

В конечном счете, хотя ОРМ путем проектирования принимать вас от SQL так возможно, что ни один из них не подходит.

3

Этот вопрос иллюстрирует проблему RoR, которая довольно широко обсуждается - ее относительный дискомфорт со сложными требованиями к сопоставлению базы данных. (это действительно шаблон ActiveRecord, где трудности лежат.) Ему нравится разлагать сложные запросы на более простые, более подходящие к AR-модели, которые вы, вероятно, уже знаете, являются относительно легкой абстракцией над таблицами, с простыми отношениями на основе, например, утверждения типа «один ко многим».

Поэтому я бы сказал, что вам будет комфортно, если вы сами примете SQL-запрос, а затем пусть RoR обрабатывает части, не связанные с постоянством.

Это не затруднение, ограниченное RoR. Большинство инструментов Object-Relational Modeling представляют одни и те же вопросы.

(Сноска: Я почти использовал аббревиатуру ОРМ, но есть еще один ORM, который по совпадению обрабатывает конкретно эти типы концептуальных вопросов проектирования баз данных и abstration довольно красиво:. Объект Роль моделирования)

2

Вполне возможно, что Rails не является подходящую платформу для этого приложения. Или вы можете рассмотреть возможность использования ActiveRecord для представления в вашей базе данных. Совокупность ваших данных в ваших представлениях, а затем используя камень «rails_sql_views», вы можете рассматривать их как обычные модели. (Я никогда раньше это, так что я не знаю, насколько хорошо это работает на практике.)

Ссылка: rails_sql_views

Edit: При дальнейшем осмотре, вы, возможно, даже не нужна, что драгоценный камень, или любая другая специальная настройка для простого запроса к представлениям.

1

Причина, по которой мне нравится активная запись, заключается в том, что она позволяет вам ткнуть через абстракцию. Мне еще предстоит столкнуться с ситуацией, с которой я не мог справиться с AR. Я уверен, что могут быть некоторые чрезвычайно эзотерические примеры, но лучший вопрос - дать пример типа запроса, который вы хотите сделать, и позволить кому-нибудь показать вам, как это сделать в AR.

+0

Хорошее предложение. –