在mysql中维护数据库视图有时很麻烦。更改引用表时,您必须更改表,并且在迁移中没有干净的方法(DB::unprepared()
)。我想在模型中使用query scopes更易于维护。不是吗?它是否会对性能产生负面影响。
答案 0 :(得分:1)
我不知道你的项目有多大,我没有很多元素可以完美地判断这种情况。
但是,使用视图意味着取决于底层数据库系统。显然它有其优点和缺点,但我更愿意解耦我的软件组件。
如果您将来更改从 MySQL 切换到 MongoDB 会怎样?
也许,你可以使用一个缓存系统,比如Redis或Memcached(而Laravel 已经有一个现成的服务)。
正如我之前告诉过你的,我提出这个建议主要是因为我考虑了软件的可扩展性和组件分离。
在这里,您可以了解缓存服务的基本用法:http://www.concrete5.org/marketplace/themes/bootstrap/
另外,如果您对设计模式有信心,可以使用一些堆叠的存储库和装饰器模式实现一个非常优雅的解决方案。
你可以在这里找到一些有关这个主题的有趣文章:
是的,它们与Laravel 4有关,但这个概念可以在Laravel 5. *项目中轻松采用。
希望它有用!
编辑:正如我在下面的评论中所说,如果你不想从像Redis或Memcached这样的东西开始,你总是可以使用基于文件系统的缓存。