2009-10-04 58 views
1

我發現ActiveRecord的使用會影響我設計數據庫模式的方式(儘管我希望它不會)。我正在考慮提取數據的低效性以及如何減少查詢的總數。 find:include選項目前只能讓你獲得。我來自編寫存儲過程,可以在一次調用中獲取所需的所有內容(針對特定屏幕或活動)。接受SQL並簡單映射對象和關係的ORM?

我真的不需要編寫我的SQL的API。我完全滿意以非Ruby方式編寫T-SQL。我唯一想要的是將我的查詢結果映射到實例化的模型及其關聯。有沒有采用這種方法的ORM?可以處理多個選擇的人(存儲的特效?),甚至使用臨時表...

編輯:

我轉述並澄清什麼,我真的這個question後。

+0

日子她念叨着,我真的很想念SQL – 2009-10-04 21:36:47

回答

1

我發現對一個相當複雜的查詢的需求大約是項目的20%,所以使用ORM相當有幫助。

當這20%出現時,我發現自己正在做的事情與你所要求的一樣,只是用SQL進行工作。 ActiveRecord和DataMapper有一個find_by_sql方法可以幫助你更多,但是並沒有實例化所有模型(至少在ActiveRecord上,如果我沒弄錯的話,那就是)。

您是否嘗試過使用Sequel?這也是一個ORM,但讓我們更容易,更靈活地處理您的問題。

除此之外,我不能想到ORMs領域更集中的解決方案。請記住,ORM試圖抽象查詢接口來簡化。如果您對使用原始SQL感到舒適,也許只需一個SQL Facade界面就可以提高工作效率。

+0

我看了看續集。我不確定的是如何在ActiveRecord或Sequel中手動映射關聯。也就是說,如果我只是試圖將Child(parent.children << child)插入到模型的關聯中,ActiveRecord可能會將此混淆爲一種新的關係,而不是將其作爲現有的關係接受。 – Mario 2009-10-05 12:04:16