Php CI数据映射器:迭代父-子
我有类别和职位。 我想列出所有类别(家长),以及所有相关的职位(孩子)。如果没有嵌套集,则需要复杂的查询。建立了关系 正如我从文档中记得的:Php CI数据映射器:迭代父-子,php,mysql,codeigniter,codeigniter-datamapper,Php,Mysql,Codeigniter,Codeigniter Datamapper,我有类别和职位。 我想列出所有类别(家长),以及所有相关的职位(孩子)。如果没有嵌套集,则需要复杂的查询。建立了关系 正如我从文档中记得的: $categories = new Category(); foreach( $categories->get() as $category ) { echo $category->name; foreach( $category->post->get() as $post) { echo $po
$categories = new Category();
foreach( $categories->get() as $category )
{
echo $category->name;
foreach( $category->post->get() as $post)
{
echo $post->title;
}
}
现在,如果我有1000个类别,它将对每个类别进行查询
这种情况下的最佳做法是什么?
我将创建一个专用的模型方法来检索所需的数据,并将其分批检索(用于分页)。在我开始使用一些示例代码之前,核心概念是您有两个表,通过内部JOIN语句链接,并且您可以批量限制选择。然后,您可以像通常在视图中一样显示数据 假设您有一个类别表,该表如下所示:
- 身份证
- 名字
- 身份证
- 名字
- 类别识别码
$this->db->select('*');
$this->db->from('category');
$this->db->join('post', 'post.category_id = category.id', 'inner');
$this->db->limit($limit, $offset);
$query = $this->db->get();
分页可以在需要显示大量数据时节省时间。但是,如果<强>必须同时显示所有数据>,请考虑使用MycCurp、Gelman或类似的缓存技术,以便您有更好的性能。