2010-08-09 31 views
12

下面的报价已经说服最终走ORM。在过去,我并没有真正喜欢ORM,而是把它写成了一个执行sql的蠢事。在sql中处理分层数据是我不想处理的一个难题。哪个ORM for codeigniter?

有一个原因,我们有这些“对象关系映射器”的事情,这是因为一个称为对象关系阻抗不匹配的问题。基本上,用于确保它们保持完整的数据库的正式数学模型遵循具有行和列以及对其他表的表的系统,而我们今天使用的大多数编程语言中的数据结构在嵌套的树状结构中操纵数据。这就像电子表格和XML文档之间的区别,或者是在分类帐和家庭树图之间的区别。 - http://zork.net/motd/nick/django/your-favorite-orm-sucks.html

我想用最少的努力设置一些东西。我的大部分项目都很小,所以我不想花费太多时间来定义模型,因为我只用于少量查询。

我使用codeigniter作为php框架和MySQL作为数据库。

+1

[良好的PHP ORM库?](http://stackoverflow.com/questions/108699/good-php-orm-library)和[许多其他](http://stackoverflow.com/search? q = orm + php) – Gordon 2010-08-09 07:52:07

+2

数据库中没有任何递归或分层查询支持的分层数据是您的问题。 PostgreSQL将是一个可行的替代方案,尽管目前有免费版本的SQL Server和Oracle ... – 2010-08-09 07:54:35

+0

@OMG Ponies所以基本上问题是mySQL不支持对象,所以获取数据的唯一方法是递归地查询或做一堆左连接并结束冗余数据? 我只是简单地介绍了oracle,存储过程是否是正确的工具,或者查询实际上是否可以返回对象中的分层数据? – Keyo 2010-08-09 08:13:09

回答

9

主义是辉煌的,非常容易安装和使用CI。有三种方式将它整合1)CI wiki 2)中描述的方式作为插件3)使用钩子。我不喜欢选项1,因为它涉及与CI系统文件混淆。选项2非常简单,我目前使用的是。安装在www.phpandstuff.com上描述。我从来没有尝试过选项3,但它听起来很有趣 - http://blog.medryx.org/2008/10/04/codeigniter-and-doctrine/

+0

谢谢。我正在阅读教义文档。有很多东西需要学习,但如果我可以在任何框架上使用它,这将是值得的。 – Keyo 2010-08-09 23:59:47

2

我如何Datamapper Overzealous Edition

认为原来的DataMapper(从stensi)ISN”现在正在开发中。 (有人纠正我,如果我错了)Datamapper Overzealous Edition很容易与Codeigniter合作。

我确信Doctrine的效果很好,但我不确定使用Codeigniter设置它有多容易。

5

我认为你应该尝试DataMapper ORM这是写在本地CI也易于配置和易于使用。我认为它比教义更好。