我有两个实体。类别和产品。每个产品可以有多个类别,每个类别可以属于多个类别。我希望能够返回所有产品,并为每个产品分配其所有类别及其父类别。数据存储是这样的一个很好的选择吗?Google datastore建模
例如产品响应:
{
id: 1,
name: "shoes",
categories: [{
id:1,
ordinal:1
},{
id:2,
ordinal:1
}]
}
我有两个实体。类别和产品。每个产品可以有多个类别,每个类别可以属于多个类别。我希望能够返回所有产品,并为每个产品分配其所有类别及其父类别。数据存储是这样的一个很好的选择吗?Google datastore建模
例如产品响应:
{
id: 1,
name: "shoes",
categories: [{
id:1,
ordinal:1
},{
id:2,
ordinal:1
}]
}
我假设你的意思是“数据存储”,你写的“数据流”
这取决于如果你想根据类别或不以后查询。
我建议你定义在类的模型(具有相应的父/子关系),然后在LocalStructuredProperty将每个类别的产品。数据存储将保存为blob,但在检索产品时会重建类别实体模型。您还可以添加一个带有序列化字符串的JsonProperty,其中包含每个产品的类别结构。例如:
[
0: {
category: 'Electronics',
subcategories: ['Smartphones', 'Telephones', 'Gadgets']
},
1: {
category: 'Apple',
subcategories: ['iPhone']
}
]
Read more about the LocalStructuredProperty and the JsonProperty here (for Python client library)。
那么你应该使用一个StructuredProperty。创建一个模型来定义你的类别和他们的祖先路径。然后,在实例化产品实体时,您可以将一个或多个类别(连同其父母)添加到产品实体中。
Datastore文档中的Entity Property Reference有一个关于如何实现它的好例子(在Python中,但也可用于其他语言)。这里是你如何filter for StructuredProperty values。
谢谢你的回答!是的,我的意思是数据存储。我需要通过他们的类别来查询事件。 – chchrist