Joh*_*ohn 3 database google-app-engine transactions google-cloud-datastore google-cloud-platform
我正在尝试通过Google数据存储学习NoSQL,但是我遇到了唯一性问题。
考虑一个电子商务商店,它具有类别和产品。
您不希望数据库中具有相同SKU的两个产品。
所以我用JSON插入了一个实体:
{"sku": 1234, "product_name": "Test product"}
Run Code Online (Sandbox Code Playgroud)
它显示了两个字段。但是之后我可以再次这样做,并且我有两个或更多相同的产品。
您如何避免这种情况?可以使sku字段唯一吗?
插入之前是否需要查询?
类别也会出现相同的问题。我是否应该对所有类别都使用一个实体,然后在JSON中进行结构化?
这是什么好习惯?
创建一种称为“ sku”的新类型。创建新产品时,您需要对产品实体和sku实体进行事务性插入。
例如,假设您要添加一个新产品,其种类名称product为ID abc:
"product/abc" = {"sku": 1234, "product_name": "Test product"}为了确保属性“ sku”的唯一性,您总是想插入一个实体,其名称sku和ID等于该属性的值:
"sku/1234" = {"created": "2017-05-11"}上面的示例实体具有用于创建日期的属性-作为示例的一部分,我添加了一些可选内容。
现在,只要将这两者作为同一事务的一部分插入,就可以确保“ sku”属性具有唯一值。之所以有效,是因为:
| 归档时间: |
|
| 查看次数: |
928 次 |
| 最近记录: |