Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 有什么技术可以代替名称空间吗_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Google app engine 有什么技术可以代替名称空间吗

Google app engine 有什么技术可以代替名称空间吗,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,除了名称空间之外,还有什么方法可以对数据进行分区吗?我需要为每个用户组分割数据,但是一些管理员用户应该看到每个人的所有数据和名称空间块。您尝试过祖先路径吗?出于完全相同的原因,我们使用它来代替名称空间。我们还添加了作为文件夹的实体,用于存储需要分组的任何数据。例如:我们有一个订户实体,我们添加了一个名为Users的标签,它是订户的子级。所有属于订阅服务器特定实例的用户实体,我们都添加到该用户标签中。订阅服务器上的祖先查询可用于返回所有实体,包括订阅服务器、标签和用户实体 我有一个多租户应用程序,

除了名称空间之外,还有什么方法可以对数据进行分区吗?我需要为每个用户组分割数据,但是一些管理员用户应该看到每个人的所有数据和名称空间块。

您尝试过祖先路径吗?出于完全相同的原因,我们使用它来代替名称空间。我们还添加了作为文件夹的实体,用于存储需要分组的任何数据。例如:我们有一个订户实体,我们添加了一个名为Users的标签,它是订户的子级。所有属于订阅服务器特定实例的用户实体,我们都添加到该用户标签中。订阅服务器上的祖先查询可用于返回所有实体,包括订阅服务器、标签和用户实体


我有一个多租户应用程序,其中每个名称空间都有自己的管理员。但是,和您一样,我希望有一个超级管理员,可以访问任何名称空间并执行名称空间管理员可以执行的所有过程

因此,我为每个名称空间创建了一个管理实体,但在空名称空间上创建了一个超级管理实体。因此,我使用默认(空)名称空间来存储全局实体。通过这样做,您只需在寻找超级管理员之前将名称空间设置为空,必须小心设置原始名称空间

YourHandler(RequestHandler):
    original_ns=namespace_manager.get_namespace()
    namespace_manager.set_namespace("")

    #Look for Super Admin Here
    ...
    # Return to original ns
    namespace_manager.set_namespace(original_ns)

当然,我把这种安全代码放在decorators中,以便在所有应用程序中重复使用,但上面的代码更容易理解。

Hi Moin,您在祖先查询方面遇到过任何性能问题吗?还有,名称空间会更快吗?thanks@ZiglioNZ这里没有问题。但请记住,“父项”无法重置,因此您将无法“移动”用户。您需要使用新的父级创建副本。对于名称空间也是如此。