我有一个包含这些表MySQL数据库:返回每行多行(Zend框架)
sessions
--------
sessionid (INT)
[courseid (INT)]
[locationid (INT)]
[comment (TEXT)]
dates
-----
dateid (INT)
sessionid (INT)
date (DATE)
courses
-------
...
locations
---------
...
每个会话都有一个唯一的会话ID,并且每个日期都有一个唯一的dateid。但日期不一定具有唯一的sessionid,因为会话可以跨越可变数量的日期(不一定是连续的)。
选择每个完整行仅仅是加入sessionid表上的表格。然而,我正在寻找一种方法来为特定的courseid返回一个行集,其中rowset中的每一行表示一个位置,并且包含另一个行集,每个行集都包含单个会话,而后者又包含另一个行集,其中包含所有日期为会话:
course
location
sesssion
date
date
session
date
date
date
location
...
这是因为我使用的查询使用Zend Framework,这对在面向对象的方式操纵行和行集出色的界面从PHP这个数据库。
最终,我试图输出一个'计划'的视图,首先由课程,然后地点,然后日期组织。理想情况下,我可以遍历每行作为位置,然后针对每个位置遍历每个会话,然后针对每个会话迭代每个日期。
我正在考虑通过单独查询所有地点,会话和日期来做到这一点。然后,我将每个行集转换为一个数组,并将每个会话数组添加为位置数组的成员,并将每个日期数组添加为会话数组的成员。
但是,这感觉非常糟糕,并且不能提供以面向对象的方式处理行的能力。
我不知道是否有要么是:
一)表示此数据更好的表模式;
b)我不知道的sql查询;
C)在Zend_Db的方法,让我行集分配给行集
请让我知道,如果我没有在任何地方明确,并在此先感谢。
(穿越我的手指,这不会对日常跆拳道结束了...)
+1我同意,我为Zend Framework数据库类贡献了很多。这些问题适用于任何ORM;这不仅仅是Zend Framework。 – 2009-05-20 23:53:52