我有一个拥有“粉丝”的用户。我需要能够在用户/关注者树上上下导航。如果用户有很多关注者,如果我使用AppEngine's 1mb limit,我最终会在实体条目上点击ancestor relations。
在AppEngine上构建此数据的最佳方法是什么?
答案 0 :(得分:0)
您不能使用祖先关系,原因很简单,您的用例允许循环引用(我跟着你,你跟着我)。
解决方案取决于您的预期使用模式。您可以选择两个选项:
(A)在每个suer实体存储中,该用户正在关注的其他用户的ID列表。
(B)创建一个具有两个属性的独立实体:“User”和“Follower”。每个实体都代表用户之间的单一“连接”。
虽然第一个选项似乎更简单,但您可能会遇到exploding indexes问题。此外,它可能会成为一种更昂贵的解决方案,因为用户关系中的每次更改都需要覆盖用户实体并更新其所有其他索引。第二种解决方案没有这些缺点,但可能需要一些额外的代码。