Firebase-Firestore数据结构

时间:2018-08-15 20:21:19

标签: google-cloud-firestore

我需要最好的帮助方法来构建收集和文档的结构。 我想实现的目标是在传统的sql查询中很简单。

我收集了卡片,每张卡片都有一个ID。 我收集了一些赚取卡并存储卡ID的用户。 我要过滤用户卡。 传统sql

SELECT cards.cardID, cards.CardName, cards.CardDescription, myCards.uid 
FROM cards 
INNER JOIN myCards ON cards.cardID = myCards.cardID 
WHERE (((myCards.uid)=1));

我知道不是那样做的。

1 个答案:

答案 0 :(得分:1)

Cloud Firestore中没有服务器端联接的概念(许多其他NoSQL数据库中也没有)。

如果您需要两个集合中的数据,则需要(至少)两次读取操作。

或者,您可以将myCards中的数据复制到cards集合中的相关文档中。在这种情况下,您存储了重复的数据,但是需要较少的读取操作。您需要权衡读取操作的可伸缩性,而要进行更复杂(且可伸缩性较小)的写入操作。

您首选哪种方法很大程度上取决于您对NoSQL数据库的经验水平。两者都不总是比对方更好。为了使这些注意事项更加舒适,我建议您阅读NoSQL data modeling,观看Firebase for SQL developersGet to know Cloud Firestore