我擔心Rails是否可以處理財務應用程序所需的複雜聚合類型,尤其是ORM是否可以有效處理這些聚合。 在我正在考慮使用的財務應用程序中,需要對各種方式彙總的詳細財務數據進行大量報告。如果沒有Rails ORM的支持,我需要編寫直接的SQL。但是我擔心的是,一旦我開始使用Rails,Rails的其他部分可能無法正常工作,因此我最終可能最終會使用Rails作爲其路由,而其他方面則很少。這是一個有效的擔憂還是我不必要地擔心?Rails ORM是否限制了執行聚合的能力?
回答
ActiveRecord的侷限性是我在科學環境中使用Rails時遇到問題的原因之一。你可能想看看替代紅寶石ORM的是使它更容易一點與傳統的數據庫工作:
雖然最終ORM的設計帶你遠離SQL等等有可能它們都不適合。
這個問題說明了一個相當廣泛討論的RoR問題 - 它對數據庫映射需求的困難相對不適。 (它確實是困難在於的ActiveRecord模式)。它喜歡將複雜的查詢分解爲更加貼近AR模型的簡單模型,您可能已經知道對錶格的抽象比較輕,基於例如簡單的關係。一對多的斷言。
所以我會說如果你自己接受SQL的責任,你會更舒服,然後讓RoR處理非持久性部分。
這不是一個限制RoR的窘境。大多數任何對象關係建模工具都會提出相同的問題。
(附註:我幾乎使用了縮寫ORM,但還有另外一個ORM是巧合專門處理這些類型的概念數據庫設計和abstration問題相當不錯:對象角色建模)
這有可能是Rails是不是適用於此應用程序的平臺。或者你可以考慮使用ActiveRecord來處理數據庫中的視圖。在您的視圖中彙總您的數據,然後使用'rails_sql_views'gem,您可以像普通模型一樣對待它們。 (我從來沒有使用過這一點,所以我不知道該怎麼好這工作在實踐中。)
編輯:在進一步的檢查,你可能甚至不需要任何寶石,或任何其他特殊的設置來簡單地查詢視圖。
我喜歡活躍的記錄的原因是它允許你通過抽象。我還沒有遇到我無法用AR處理的情況。我敢肯定,可能有一些非常深奧的例子,但更好的問題是給出一個你想要做的查詢類型的例子,並讓別人告訴你如何在AR中做到這一點。
好的建議。 – 2009-02-03 15:18:34
- 1. MongoDB聚合性能能力
- 2. 如何在MongoDB中執行組合,排序和限制聚合?
- 3. 我是否可以限制ViewFlipper翻轉,直到執行了AsyncTask?
- 4. 凝聚力和耦合力
- 5. 瞭解MongoDB聚合性能
- 6. VARCHAR列在mySql中是否有索引能力限制?
- 7. 如何執行此聚合?
- 8. 是否有可能控制聚合物表達式燃燒?
- 9. 如何通過Accumulo的列限定符字段執行聚合?
- 10. 聚合物火力:與火力
- 11. 是否有可能將論點傳遞給聚合物行爲?
- 12. 我是否限制了C#和ASP?
- 13. 這是否違反了EJB限制?
- 14. 在現有的Mongoose聚合結果上執行附加聚合
- 15. Accumulo是否支持聚合?
- 16. 對cron執行的命令是否有特殊限制?
- 17. 是否有限制的AsyncTasks同時執行?
- 18. AIX:不能執行二進制文件,0403-006執行權限否認
- 19. 是否可以在父聚合定義的字段上執行elasticsearch嵌套統計信息聚合?
- 20. GAE:在「超出軟限制內存限制」後執行是否繼續?
- 21. Hazelcast供應商和聚合提供了併發執行異常
- 22. 限制使用結果聚合物
- 23. 按類型限制ElasticSearch聚合?
- 24. 執行DataTable的聚合函數
- 25. C#集合是否總是強制執行?
- 26. Xcode是否已經破壞了我的目標WatchKit的能力?
- 27. python -m unittest執行什麼功能?
- 28. JButton是否執行了操作?
- 29. 檢查是否執行了MotionEvent.ACTION_MOVE
- 30. 執行segue是否有一些時間限制?
措辭恰當,完全無法回答的問題!具體而言,你擔心你可能無法做到,如果可能,舉個例子嗎?如果它不是特定的,至少可以用AR使SQL輕鬆適用於不那麼普通的情況的知識來彌補。 – 2009-02-02 19:52:16