在高复制数据存储(我使用 NDB)中,一致性是最终的。为了获得有保证的完整集,可以使用祖先查询。祖先查询还提供了一种很好的方法,可以通过 kindless 查询获取特定祖先的所有“孩子”。简而言之,能够利用祖先模型在 GAE 中非常有用。
我似乎遇到的问题相当简单。假设我有一个联系人记录和一个消息记录。给定的联系人记录被视为每条消息的祖先。但是,可能会为同一个人创建两个联系人(用户错误、不同的数据点等)。这种情况会产生两个联系人记录,其中包含与之相关的消息。
我需要能够“合并”两条记录,并将所有消息放入一大堆。理想情况下,我可以为记录的一个孩子修改祖先。
我能想到的唯一方法是创建一个映射并让我的应用程序检查记录是否已合并。如果有,请查看映射以找到一个或多个相关记录,并对这些记录执行查询。这似乎非常低效。是否有更多“按书本”的方式来处理这个用例?