使用CodeIgniter从DB计算数据

时间:2011-07-19 12:00:51

标签: php codeigniter

我使用一个简单的PHP框架(如Codeigniter)而没有ORM。

我有一个包含产品数据的数据库(价格,销售,目录中的页面......)。

我想计算每页的转化次数和每种产品的转化率。

使用SQL进行计算不是问题,但我真的不知道将它们放在哪里。

我应该使用像这样的方法创建“页面”和“产品”模型  "Page::getConversions($page_id)""ConversionPerPage""ConversionPerProduct"模型,或者......完全是其他的。

3 个答案:

答案 0 :(得分:2)

我认为最好的模型类是每个表有两个类 - 一个用于对象,复数用于静态类。 例如:如果您有Page表,那么您应该有Page和Pages类。 第一个允许您从表中获得一个对象,您可以在其上执行常规方法,如:

$page = new Page($page_id);
$conversions = $page->getConversions();
$page_number = $page->getNumberInBook(); etc

另一方面,在Pages类中,您可以放置​​将(通常)返回Page数组的方法,这些方法通常是静态的:

$pages = Pages::getPagesByCatalog($catalog_id);

通过这种方式,您将获得完整的模型MVC实现的真实OOP和代码。 我希望这个模型层次结构能够帮到你。我们在办公室里使用它,它表现得非常好。 一切顺利!

答案 1 :(得分:0)

基本上,您可以根据数据库架构创建模型。因此,首选选项。此外,它应该是实例方法而不是类方法(然后从$ page_id中识别对象)。

答案 2 :(得分:0)

据推测,无论如何你都会有Page和Product模型,所以我会把getConversions()函数添加到那些。