假设我有一个Club
实体和一个User
实体。 Club
有一个成员列表。
现在说我想获得用户所属的所有Clubs
。有两种方法可以做到这一点,每种方法都包含一个成员列表:
列表可以是字符串列表,这些字符串是成员的电子邮件地址。如果我想让用户参与俱乐部,我会做clubQuery.filter('emailAddresses =', userEmail)
。
列表可以是ReferenceProperties列表,其中每个项目都是对User实体的引用。所以我会做clubQuery.filter('userReferences =', user_key)
哪个是更好的选择,为什么?或者两者之间真的没有差异吗?
答案 0 :(得分:0)
根据电子邮件的平均长度,您可以通过存储电子邮件来节省一些存储空间,它们的密钥可能会更长。或者不是。
当您按键获取数据存储区时,您可以获得强一致性读取,而不是从过滤器操作获得的最终一致结果。如果存储密钥,您可以选择在必要时执行此操作。
听起来你有第三种选择,就是用电子邮件地址作为关键;你将通过这种方式获得两全其美的效果。
编辑我想我并没有真正回答你的问题。这是一个更好的答案。