繁体   English   中英

Google数据存储中的实时数据存储

[英]Realtime datastore in google datastore

我想在Google Cloud Datastore中存储有关商店和卖家的一些信息,包括目录。 我能想到的一个初始架构是( shop_info是一种)

/shop_owner_info
/shop_info
/shop_info/catalog/item(x)

但是这里的问题是,由于目录位于同一组中,因此写入限制为每秒1次。 但是每秒可能有不止一次目录更新。

所以我的问题是上面的结构如何构造,以便我可以实时更新目录。

使用命名空间,而不是祖先路径

您需要的是多租户结构。 在数据存储区中,您可以使用命名空间而不是祖先路径来实现。 请参阅数据存储区文档中的多租户

代替/ shop_info / catalog / item(x),您将拥有:

实体:

  • 所有者
  • 所有者/商店(我建议作为所有者的孩子来商店)
  • catalog_item(顶层,不是商店的子项)

命名空间:

  • [店铺名称或ID]

例:

假设John订阅了您的应用并创建了一个“ SuperElectro”商店。 您将有两个实体:

  • 所有者:“约翰”
  • 商店:“ SuperElectro”(可能是所有者的孩子:“ John”)

还有一个名称空间:

  • SuperElectro(或其唯一ID)

当您将新项目添加到SuperElecto的目录中时,请勿提供任何祖先/父母。 而是提供一个包含所有者和商店的名称空间:

在Python中:

from google.appengine.api import namespace_manager
from google.appengine.ext import ndb

class CatalogItem(ndb.Model):
    name = ndb.StringProperty()
    category = ndb.StringProperty()

namespace_manager.set_namespace('SuperElectro')
item = CatalogItem(name='iPhone', category='Smartphone')
item.put()

在现实世界中,您想对名称空间使用唯一的名称:我建议使用商店ID代替“ SuperElectro”。

希望能帮助到你。 使用命名空间实现多租户上了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM