2009-11-02 71 views
1

我学习DBIx类和我有点困惑,因为我与数据库的交互至今一直在PHP代码普通的SQL查询。DBIx ::类结果类别和实际表

反正,按照我的理解,这个类与结果类中定义的,而不是直接与数据库交互的模式运行。该模式可以通过各种.pm类手动构建,也可以通过Loader类从数据库中提取。

我的问题是:对此的首选方法是什么?如果我手动构建结果类然后更改我的数据库会怎么样?我想我必须编辑表格和类,是不是有点不切实际?

感谢

回答

1

一个在使用对象 - 关系映射系统,如DBIx ::类的困难是,你必须保持你的表类上最新与架构。通常,就像在这里和那里添加一个字段一样简单,可能偶尔会添加一个新的外键关系。如果你在版本控制中获得了代码,那么保持跟踪应该相对简单。

在两个地方保持同样的事情(DB模式)的缺点是在地方有一个ORM系统的优势压倒(恕我直言)一旦您习惯了使用DBIx :: Class查询和它们的ResultSet,事情比编写原始DBI调用要快得多。

就个人而言,我已经没有好运气的装载机类,但它已经相当一段时间,因为我尝试过。如果他们为你工作,这可能比在代码中手动维护模式定义更容易。另一方面,我从来没有被这个需要的微小努力所困扰。一旦系统启动并运行,数据库模式往往不会经常更改。

+0

其实我不是真的需要,以反映任何改变,我可能做在这两个地方困扰,我只是想知道如果是这样的常用方法。实际上,与组合模式的便利性和与代码混合的SQL查询相比,它似乎只是一个很小的努力。感谢您的输入。 – 2009-11-02 15:30:59