Google云数据存储仅存储唯一实体

2023-12-06

我正在尝试使用 Google Datastore 学习 NoSQL,但遇到了唯一性问题。

考虑一个电子商务商店,它有类别和产品。

您不希望数据库中有两个具有相同 SKU 的产品。

所以我用 JSON 插入一个实体:

{"sku": 1234, "product_name": "Test product"}

它显示有两个字段。但随后我可以再次这样做,并且我有两个或更多相同的产品。

你如何避免这种情况?你能让sku字段变得独一无二吗?

插入之前需要先查询吗?

类别也会出现同样的问题。我应该只对所有类别使用一个实体并将其构建在 JSON 中吗?

这里有什么好的常见做法?


创建一个名为“sku”的新类型。创建新产品时,您需要对产品实体和 sku 实体进行事务插入。

例如,假设您要添加一个具有种类名称的新产品product其 ID 为abc:

  • "product/abc" = {"sku": 1234, "product_name": "Test product"}

为了确保属性“sku”的唯一性,您始终需要插入具有种类名称的实体sku以及等于属性值的 id:

  • "sku/1234" = {"created": "2017-05-11"}

上面的示例实体有一个创建日期的属性 - 只是我作为示例的一部分添加的可选内容。

现在,只要你insert这两者都是同一交易的一部分,您将确保“sku”属性具有唯一的值。这是有效的,因为:

  • Insert如果该编号的 sku 实体已存在,则确保写入失败
  • The 交易确保写入产品实体(带有 sku 值)并且 sku 实体是原子的 - 因此,如果 sku 不唯一,则写入 sku 实体将失败,导致产品实体写入也失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google云数据存储仅存储唯一实体 的相关文章

随机推荐