我想在google云数据存储中存储一些关于商店和卖家的信息,包括目录。我能想到的一个初始架构是(shop_info是一种)
/shop_owner_info
/shop_info
/shop_info/catalog/item(x)但这里的问题是,由于目录在同一组中,写入被限制为每秒1次。但我可能每秒更新一次以上的目录。
所以我的问题是,如何组织上面的内容,以便我可以获得目录的实时更新。
发布于 2017-04-12 23:59:14
使用名称空间,而不是祖先路径
您需要的是一个多租户结构。在数据存储中,您可以使用名称空间,而不是祖先路径来完成此操作。参见Multitenancy in Datastore docs。
不是/shop_info//item(X),而是:
实体:
命名空间:
示例:
假设John订阅了您的应用程序,并创建了一个“SuperElectro”商店。您将拥有两个实体:
店主:‘John’
和一个名称空间:
在向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”。
希望能有所帮助。请访问Implementing Multitenancy Using Namespaces了解更多信息。
https://stackoverflow.com/questions/41087865
复制相似问题