我几乎看遍了所有的ZF教程 对Model的层的代码无外乎都是继承自Zend_Db_Table的类 并且任何方法都没写我想请问实际开发中 不可能这样的吧?Zend_Db_Table有很多限制 它只是针对一个表的操作我现在遇到一个问题 举个例子 文章和Tag的关系我已知一个文章ID 要根据这个ID取出他的所有Tag我现在有文章表Article、Tag表、还有一个对应关系表一个文章可以有多个Tag 一个Tag也可以对应多个文章对应关系表也包含一些数据 比如这篇文章被打上Tag的时间、打tag的用户名等等那么 我想要取出ID为1的文章的所有Tag、同时还要有打上Tag的时间和用户 怎么办?用Zend_Db_Table 的 Relationships 只能单个的取 不能一次取出来 这样就要读两次数据库 而且还要自己合并两个Zend_Db_Table_Rowset不知道大家遇到这种情况是怎么解决的?

解决方案 »

  1.   

    我一般喜欢直接写sql语句查询
      

  2.   

    觉得有用就用吧 MODEL层继承ZEND_DB_TABLE多是因为数据库应用多前几天写ATHENA(RO SF服务端)数据库合并 刚开始的时候按照过程的方式写总有意外的错误
    痛苦的用对象的方式全部重写 主循环30行搞定 一次测试通过 效率肯定是有影响的不过相对程序的稳定和健壮来说是值得的游戏的数据要比WEB复杂的多 AID->CID->技能|装备|任务|工会|好友|邮件|宠物->技能->装备|结婚|小孩->AID->....|仓库 另有VIP系统 RMB装备....
    这些信息是肯定不能用1次查询就完成的 只能按照关系一步一步的来对于楼主的应用参考下索引的方式应该很容易
    Article->Tag(php;zend;framework;zf;)Tag->index(Aid,Title,user,date;Aid,Title,user,date)如果是这样的数据形式 
    根据1个AID 两次查询就能得到文章 所有的TAG 及此TAG所有的AID TITLE USER DATE 把分割字符串放到方法里
    主逻辑2行 呵呵
      

  3.   

    通常只在查询时,我把多表做成视图来解决查询的问题.
    其实web开发中,般小项目没什么必要整那么复杂,这点完全同意1楼的.