通过 id/key 获取实体而不指定祖先键
Geting entities by id/key without specifying the ancestor key
我使用 go with App Engine 和数据存储。我有餐厅和业主实体。 所有者 是餐厅 的父级。我在主页上显示餐厅列表。当访问者点击餐厅时,资料页面 (www.../restaurants/:id) 将打开。那时我没有祖先钥匙。我应该如何检索餐厅?我可以使用 /restaurants/:key 但 datastore.key 是一个很长的字符串。
这样做的自然方式是什么?我应该使用独特的餐厅名称并 query/filter 吗?
您可以保留当前的数据模型(餐厅所有者的子实体)。您只需将 "Owner" 变量添加到餐厅即可。
当您检索餐馆实体时,您可以从其键中提取所有者 ID - 每个键都已经包含一个父键(如果有)。在 Java 中看起来像这样:
restaurant.setOwner(entity.getParent().getId());
当您需要 get/save 餐厅实体时,您可以使用其自己的标识符和使用所有者 ID 创建的父密钥来创建其完整密钥。
我使用 go with App Engine 和数据存储。我有餐厅和业主实体。 所有者 是餐厅 的父级。我在主页上显示餐厅列表。当访问者点击餐厅时,资料页面 (www.../restaurants/:id) 将打开。那时我没有祖先钥匙。我应该如何检索餐厅?我可以使用 /restaurants/:key 但 datastore.key 是一个很长的字符串。 这样做的自然方式是什么?我应该使用独特的餐厅名称并 query/filter 吗?
您可以保留当前的数据模型(餐厅所有者的子实体)。您只需将 "Owner" 变量添加到餐厅即可。
当您检索餐馆实体时,您可以从其键中提取所有者 ID - 每个键都已经包含一个父键(如果有)。在 Java 中看起来像这样:
restaurant.setOwner(entity.getParent().getId());
当您需要 get/save 餐厅实体时,您可以使用其自己的标识符和使用所有者 ID 创建的父密钥来创建其完整密钥。