我的项目是在Ionic3,Angular2和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次读取。 有没有更好的方法?
答案 0 :(得分:0)
解决方案是使用database denormalization:您在朋友文档中复制了所需的信息(例如姓名和photoURL)。这样,在读取时,您拥有显示所需内容的所有数据。当然,有一个权衡。在朋友更新后,您必须更新所有相关文档或使用过时信息。但是,您的用例似乎比写入更多读取。因此,应用非规范化应该不是一个大问题。