我们有两个模型表,它们共享相同的查询,但由于我们分别查询它们,分页可能会令人头疼。
我们有视频模型和图像模型。因此,如果我们想要根据创建日期获取它们,我们需要分别运行两个查询,然后统一它们,重新排序和限制。令人头疼的是,当分页时,我们需要两个单独的偏移量。
你说对了。我们想以某种方式将它们统一起来。问题是它们在我们复杂的应用程序中根深蒂固,以至于我们不能将它们统一到一个大表中。我们想知道ActiveRecord有什么解决方案,如果有的话,来管理一个表,指向两个独立的模型,其中查询可以一起运行。也许我们应该创建一个大的Assets表,在其中它有自己的ID,并有一个特定模型的reference_id?
谢谢!
发布于 2017-07-16 21:11:15
我不知道您使用的是什么数据库,但我遇到了类似的问题,SQL视图似乎是解决方案。只需创建视图,将在迁移文件和表示图像和视频的新模型中合并这两个表。在您的模型中,您需要指定表名和主键:
self.primary_key = :id
self.table_name = 'name_of_your_view'ActiveRecord会将此视图视为常规表。也许性能不如使用真正的表时那么好,但比将所有内容加载到内存中、排序和分页要好得多。
https://stackoverflow.com/questions/45128527
复制相似问题