关于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

不知道大家遇到这种情况是怎么解决的?
...全文
161 4 打赏 收藏 转发到动态 举报
写回复
用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语句查询
Table of Contents •Introduction to Zend Framework •Overview •Installation •Learning Zend Framework •Zend Framework Quick Start •Autoloading in Zend Framework •Plugins in Zend Framework •Getting Started with Zend_Layout •Getting Started Zend_View Placeholders •Understanding and Using Zend Form Decorators •Getting Started with Zend_Session, Zend_Auth, and Zend_Acl •Getting Started with Zend_Search_Lucene •Getting Started with Zend_Paginator •Zend Framework Reference •Zend_Acl •Zend_Amf •Zend_Application •Zend_Auth •Zend_Barcode •Zend_Cache •Zend_Captcha •SimpleCloud API: Zend_Cloud •Zend_CodeGenerator •Zend_Config •Zend_Config_Writer •Zend_Console_Getopt •Zend_Controller •Zend_Currency •Zend_Date •Zend_DbZend_Debug •Zend_Dojo •Zend_Dom •Zend_Exception •Zend_Feed •Zend_File •Zend_Filter •Zend_Form •Zend_Gdata •Zend_Http •Zend_InfoCard •Zend_Json •Zend_Layout •Zend_Ldap •Zend_Loader •Zend_Locale •Zend_Log •Zend_Mail •Zend_Markup •Zend_Measure •Zend_Memory •Zend_Mime •Zend_Navigation •Zend_Oauth •Zend_OpenId •Zend_Paginator •Zend_Pdf •Zend_ProgressBar •Zend_Queue •Zend_Reflection •Zend_Registry •Zend_Rest •Zend_Search_Lucene •Zend_Serializer •Zend_Server •Zend_Service •Zend_Session •Zend_Soap •Zend_Tag •Zend_Test •Zend_Text •Zend_TimeSync •Zend_Tool •Zend_Tool_Framework •Zend_Tool_Project •Zend_Translate •Zend_Uri •Zend_Validate •Zend_Version •Zend_View •Zend_Wildfire •Zend_XmlRpc •ZendX_Console_Process_Unix •ZendX_JQuery •Zend Framework Requirements •Introduction •Zend Framework Migration Notes •Zend Framework 1.10 •Zend Framework 1.9 •Zend Framework 1.8 •Zend Framework 1.7 •Zend Framework 1.6 •Zend Framework 1.5 •Zend Framework 1.0 •Zend Framework 0.9 •Zend Framework 0.8 •Zend Framework 0.6 •Zend Framework Coding Standard for PHP •Overview •PHP File Formatting •Naming Conventions •Coding Style •Zend Framework Documentation Standard •Overview •Documentation File Formatting •Recommendations

21,886

社区成员

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

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