首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google数据存储中的实时数据存储

google数据存储中的实时数据存储
EN

Stack Overflow用户
提问于 2016-12-11 23:34:49
回答 1查看 363关注 0票数 1

我想在google云数据存储中存储一些关于商店和卖家的信息,包括目录。我能想到的一个初始架构是(shop_info是一种)

代码语言:javascript
复制
/shop_owner_info
/shop_info
/shop_info/catalog/item(x)

但这里的问题是,由于目录在同一组中,写入被限制为每秒1次。但我可能每秒更新一次以上的目录。

所以我的问题是,如何组织上面的内容,以便我可以获得目录的实时更新。

EN

回答 1

Stack Overflow用户

发布于 2017-04-12 23:59:14

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

您需要的是一个多租户结构。在数据存储中,您可以使用名称空间,而不是祖先路径来完成此操作。参见Multitenancy in Datastore docs

不是/shop_info//item(X),而是:

实体:

  • owner
  • owner/shop (我建议商店作为owner)
  • catalog_item的孩子(顶层,而不是商店的孩子)

命名空间:

  • 商店名称或ID

示例:

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

店主:‘John’

  • 店铺:'SuperElectro‘(可能是店主:’John‘的孩子)

和一个名称空间:

  • SuperElectro (或其唯一ID)

在向SuperElecto的目录中添加新项目时,不要提供任何祖先/父项。相反,提供一个名称空间,它是所有者和商店的组合:

在Python中:

代码语言:javascript
复制
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”。

希望能有所帮助。请访问Implementing Multitenancy Using Namespaces了解更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41087865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档