关于Zend_Db_Table在项目中的作用

wingZZseed 2008-03-26 11:46:55
我几乎看遍了所有的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

不知道大家遇到这种情况是怎么解决的?
...全文
190 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
striker_un 2008-03-31
  • 打赏
  • 举报
回复
通常只在查询时,我把多表做成视图来解决查询的问题.
其实web开发中,般小项目没什么必要整那么复杂,这点完全同意1楼的.
unlive 2008-03-26
  • 打赏
  • 举报
回复
现在封装的一些类,相对得比较简单吧,不能满足需求;
因为在正常使用中,经常会关联好几个表来查询的。
将过程规范了,那相对地灵活性也变差了,这是肯定的。
个人感觉,一般小项目没什么必要整那么复杂,消耗的成本不划算;
大中型项目值得试试,如工期在半年以后,投入人力超过6个。
ten789 2008-03-26
  • 打赏
  • 举报
回复
觉得有用就用吧 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行 呵呵




wangbo_wb 2008-03-26
  • 打赏
  • 举报
回复
我一般喜欢直接写sql语句查询

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧