我是一个长期使用Firebase实时数据库的用户,目前开始使用Firebase FiRecovery来处理一些新事物。在RTDB中,复制一些内容以帮助查询并避免多次查找是很常见的。在FiRecovery中,不建议重复内容,但在某些地方,我们可能不得不这样做。我创建了一个如下所示的数据模型:
有两个顶级集合企业用户
和企业帐户
。每个企业帐户文档都包含一堆子集合。其中之一是成员
。它是与企业帐户关联的企业用户列表。目前,我正在为成员存储一个id(这是成员的企业用户id)和一些其他内容。我没有在子集合中存储成员的姓名和电子邮件,因为这些信息存在于企业用户文档中。现在我必须在UI中显示企业帐户中呈现的成员列表。因此,为此,我获得了成员
子集合。但现在我还需要获取每个成员的企业用户文档以显示他们的姓名等。
这是推荐的数据模型方法吗?还是我也应该在成员子集合中复制成员名称?这也意味着,如果企业用户更改了他们的名称,那么我需要找到该用户是哪个企业帐户的成员,并更新这些帐户中的成员名称。
同样,成员
存储在许多地方。例如,他们也是团队的一部分。如果您观察到数据模型中的任何其他问题,请告诉我。
这是推荐的方法的数据模型在Fi恢复还是我应该复制成员的子集合中的成员名称呢?
是的,您还应该复制该数据。这样,您将避免额外的读取。
这也意味着,如果企业用户更改了他们的名称,那么我将需要查找该用户是哪个企业帐户的成员,并更新这些帐户中的成员名称。
是的,没错,但是名字的改变比你显示数据的频率要低得多。但最终,这是一笔交易。你总是必须衡量这一点。
我也认为以下答案也会有所帮助:
您可能也有兴趣阅读以下答案: