我繼承了一個嚴格使用存儲過程來完成工作的Web應用程序。我喜歡使前端開發人員無法打破數據庫的方法,但我已經厭倦了用純SQL編寫對SP的調用,並希望有更好的東西。雖然我一直在尋找一個像樣的ORM(在這種情況下是Perl,但這與問題無關),但我意識到ORM可能與SP有直接的矛盾。
我的想法是,就像名稱已經告訴我們的那樣,SPs就像程序性的Pascal編程風格的代表一樣,事實上,一個Web應用程序看起來與SQL Server服務器端的Pascal很像 - 許多函數,沒有真正的命名空間。相比之下,我們試圖完成大部分編程OOP風格(或功能性,這是另一個話題),所以實際上過程式SP並不適合幹凈的對象層次結構。同時,關系邏輯可以幹凈地(通過ORM)轉換為對象,但不是程序,這可能是為什麽大多數ORM不能很好地支持SP(但我不是該領域的專家)。從某種意義上說,SP 是 ORM。
所以這兩個問題是:
- 我是否認為運行ORM時使用普通表格更好?
- 市場上是否有任何“面向對象的存儲過程”,從關系模型構建?顯然,有面向對象的數據庫,但我對“服務器端的ORM”感興趣。