DBIx :: Class结果类和实际表

时间:2009-11-02 14:38:40

标签: sql perl dbix-class

我正在研究DBIx类,我有点困惑,因为到目前为止我与数据库的交互是PHP代码中的纯SQL查询。

无论如何,据我所知,该类使用结果类中定义的模式进行操作,而不是直接与数据库交互。模式可以通过各种.pm类手动构建,也可以通过Loader类从数据库中提取。

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

由于

1 个答案:

答案 0 :(得分:1)

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

由于具有ORM系统的优势,在两个地方维护相同的事物(DB模式)的缺点被超过(IMHO)。一旦习惯了使用DBIx :: Class查询及其ResultSets,事情就会比编写原始DBI调用快得多。

就个人而言,我对Loader课程并没有好运,但是自从我尝试过它们已经有一段时间了。如果它们适合您,则可能比在代码中手动维护模式定义更容易。另一方面,我从未对这需要的微小努力感到困扰。一旦系统启动并运行,数据库模式往往不会经常更改。