现象描述:
现在我有三个对象:channel(频道) 1 -> video(视频) 1 -> comment(评论)N -> user, 给你一个关于channel的token字段的值,请用最少次数的查询查出于token对应的channel频道
的所有video 和 comment
问题简答:
涉及四个model,如何用最优的查询方案查出结果。 因为comment实在太多了,所以,与comment相对应的user对象应该是级联查出的。
所以,现在我的方案是 channel -> video , video 在查询出comment , 顺便级联查出 user
最后代码如下:
@channel = Channel.find xxx, :include => [:user, video]
@video = @channel.video
@comments = @video.comments
#video 中的定义如下
has_many :comments, :include => :user
这样,有效的减少了查询次数
不知道是否有更好的解决办法?