如何在应用程序端调用实体的视图

Posted

技术标签:

【中文标题】如何在应用程序端调用实体的视图【英文标题】:How to call a view of an entity on application-side 【发布时间】:2021-07-12 10:56:06 【问题描述】:

让我们假设性能是关键。对于特定用例,仅需要来自实体(连接在一起)的特定列。由于性能原因,仅加载所需的数据(不是实体中的所有列)。最后,它只是实体的视图。如果定义了不同的用例,这将导致同一实体的多个视图。

有很多方法可以实现。但是你怎么称呼它?视图通常在数据库端,对吧? 你知道处理这个问题的一些概念吗?

【问题讨论】:

听起来您在描述一种 CQRS。有一个写入模型(在这种情况下是所有列)和任意多个读取模型,其中只有一部分列是有意义的。 【参考方案1】:

该模式通常称为Command Query Responsibility Segregation (CQRS)。

在该模式中,有单独的读写模型(至少从应用程序的角度来看)。

在命名实际“视图”时,我认为不一定有高度的一致性。有些人称它们为“读取模型”,另一些人称它们为“视图”,它们可能被视为“投影”,尽管它们通常与投影事件流相关。

我想我会称它们为“视图”,以免重载“读取模型”术语,该术语也指整个查询模型。然后,您可能会担心将“数据库视图”与那些区别开来,因此如果讨论中存在混淆,也许可以用“应用程序级视图”与“数据库视图”来澄清?

【讨论】:

谢谢!我想你是对的。 CQRS 本身就是这样。当然它可以与事件溯源相结合,但不是必须的。

以上是关于如何在应用程序端调用实体的视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在“详细”实体视图中为“主/父”实体“保存”(核心数据)?

如何将来自多个视图控制器的数据保存到单个核心数据实体中

如何将掩码应用于后端视图?

如何在 coredata 中创建数据库视图

如何从 CoreData 实体获取结果

使用 NSDocument 时如何将情节提要视图绑定到 Core Data 实体?