我使用app引擎和数据存储区。我有餐馆和业主实体。 所有者是餐厅的父母。我在主网页上显示餐馆列表。当访问者点击餐馆时,将打开个人资料页面(www ... / restaurants /:id)。那时我没有祖先的钥匙。我应该如何找回餐厅?我可以使用/ restaurants /:key但是datastore.key是很长的字符串。 这样做的自然方式是什么?我应该使用独特的餐馆名称和查询/过滤吗?
答案 0 :(得分:1)
您可以保留当前的数据模型(餐馆所有者的子实体)。您所需要的只是添加"所有者"变成餐馆。
当您检索餐馆实体时,您可以从其密钥中提取所有者ID - 每个密钥都已包含父密钥(如果有)。在Java中它看起来像这样:
restaurant.setOwner(entity.getParent().getId());
当您需要获取/保存餐馆实体时,您可以使用自己的标识符和使用所有者ID创建的父密钥创建其完整密钥。