我有一个Share
集合,每次用户Link
在我的应用程序中共享一个文档时都会存储一个文档。架构如下所示:
{
"userId": String
"linkId": String,
"dateCreated": Date
}
在我的应用程序中,我正在请求这些文档,但我的应用程序要求userId
和linkId
属性引用的信息完全解析/填充/连接(不确定术语),以便根据需要显示信息。因此,对文档的每个请求都会Share
导致对后续文档的User
查找Link
。此外,每个Link
都有一个父Feed
文档,也必须查找该文档。这意味着我有一些类似意大利面条的代码来执行一系列中的每个查找操作(总共 3 个)。然而,应用程序只需要在这些调用中找到的一些数据(一个或两个属性)。也就是说,应用程序确实需要整个Link
文档。
这非常慢,我想知道我是否应该只复制Share
文档本身中的数据。在我看来,这很好,因为大部分数据不会改变,但其中一些可能(即 aUser
的用户名)。这暗示了这样的Share
架构设计:
{
"userId": String,
"user": {
"username": String,
"name": String,
},
"linkId": String,
"link": {}, // all of the `Link` data
"feed": {
"title": String
}
"dateCreated": Date
}
在这方面优化应用程序数据的共识是什么?您是否建议我复制数据并编写一些胶水代码以确保复制的用户名在更改时得到更新(例如),或者您能否推荐一个更好的解决方案(详细说明原因)?我对以这种方式复制数据的另一个担忧是,如果我需要Share
文档中的更多数据,该怎么办?