我的项目是在Ionic 3,Angular和Firestore。由于Firestore的成本取决于读取的数量,我有以下关注。
我有以下用户结构。
User(collection)
->User ID(Doc) -> Name:
-> Photo URL:
-> Friend (collection)
->Friend ID (Doc) -> statue: Active
->Friend ID (Doc) -> statue: Inactive
->User ID(Doc) -> ...
按照这个结构,如果我想显示我的朋友列表...
Friend
系列。 (这是一读)Name
和Photo URL
。所以如果用户有200个朋友。只显示数据需要200次读取。有没有更好的方法?
解决方案是使用database denormalization:您在Friend文档中复制了所需的信息(例如name和photoURL)。这样,在读取时,您拥有显示所需内容的所有数据。当然,有一个权衡。在朋友更新后,您必须更新所有相关文档或使用过时信息。但是,您的用例似乎比写入更多读取。因此,应用非规范化应该不是一个大问题。