【发布时间】:2010-12-11 18:29:48
【问题描述】:
我继承了一个严格使用存储过程来完成其工作的 Web 应用程序。我喜欢让前端开发人员无法破坏数据库的方法,但我已经厌倦了用简单的 SQL 编写对 SP 的调用,并希望有一些更理智的东西。虽然我一直在寻找一个体面的 ORM(在这种情况下是针对 Perl,但这与问题无关)并支持存储过程,但我意识到 ORM 可能与 SP 直接矛盾。
我的想法是,正如名字已经告诉我们的那样,SP 是过程,即过程式 Pascal 风格编程的代表,事实上,一个 Web 应用程序看起来与 SQL-Server 端的 Pascal 完全一样——许多功能,没有真正的命名空间。与此相反,我们正在尝试进行大部分 OOP 风格的编程(或功能性,这是另一个主题),因此实际上过程 SP 并不适合干净的对象层次结构。同时,关系逻辑可以干净地转换为对象(通过 ORM),但不是过程,这可能是大多数 ORM 不能很好地支持 SP 的原因(但我不是该领域的专家)。从某种意义上说,SP 是 ORM。
所以这两个问题是:
- 假设我们在运行 ORM 时最好使用普通表,我是否正确?
- 市场上是否有任何“面向对象的存储过程”,从关系模型构建?显然,有面向对象的数据库,但我对“服务器端的 ORM”感兴趣。
【问题讨论】:
标签: sql oop stored-procedures orm