假设我们正在使用 MVC(也就是 Stores/Services)构建一个应用程序。SQL 被用作持久性机制。内存效率是一个主要问题。
显然,我们应该利用 SQL 查询,并且只在需要时才在理论对象中询问模型的字段。
例如,移动应用程序可能需要显示文章的标题列表,而在用户点击特定标题之前不会显示文章的正文。在这种情况下,我们首先向 SQL 询问标题。
问题是,模型对象应该是什么样子?
我能想到的解决方案是:
使用一些指示填充哪些字段的状态来增强模型。这也可以通过在模型对象的未填充字段上使用 nil/NULL/None 值来存档。
将理论模型拆分为多个类。按照前面的例子,我们可以有一个
Article
类和一个ArticleDetail
类,具有一对一的关系。忘记 Store 对象,让每个模型对象懒惰地评估它的昂贵字段。该模型必须了解其持久性机制。
这应该是一个普遍的问题。你最喜欢的框架/库中的 ORM 如何解决它?有什么最佳实践吗?