【发布时间】:2018-07-14 15:57:44
【问题描述】:
Laravel 新手,请善待。 :-)
我有一个外部只读遗留数据库。 我使用复杂查询从 Products 表中检索“top products”。 这是一个昂贵的查询,应该被缓存(如果需要,每天只更新一次)。查询的参数:自日期 xyz 以来的热门产品,最大结果数(默认值:500)。
数据库是完全只读的。无法创建视图(即solution to a similar question)。
我希望能够将这些顶级产品视为 Laravel 中的常规模型。 这样我就可以应用关系/过滤器。例如。检查购买模型以购买“顶级产品”,获取具有供应商价值“xyz”的“顶级产品”。
最好的方法是什么?
【问题讨论】:
-
此查询是否在存储过程中?或者你打算用 Eloquent 重写它?
-
它是一个复杂的常规查询(不是存储过程),带有一些 FROM 和 JOIN 的子 SELECT。我打算将其视为原始 T-SQL。
-
我会尽可能地考虑用 Eloquent 重写。有
whereRaw()和selectRaw()方法,因此即使您有时不得不使用原始 SQL,您仍然可以获得 ORM 的好处。
标签: sql laravel laravel-5 eloquent