Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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/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
Python Google应用程序引擎数据存储中的实体组_Python_Google App Engine_Schemaless - Fatal编程技术网

Python Google应用程序引擎数据存储中的实体组

Python Google应用程序引擎数据存储中的实体组,python,google-app-engine,schemaless,Python,Google App Engine,Schemaless,所以我有一个应用程序,如果我诚实的话,它并不真正需要事务完整性(很多更新,没有一个是关键的)。因此,我打算暂时把实体集团抛在一边。但我仍然想理解它(来自关系背景) 在我看来,对我的应用程序的所有查询都将以用户为基础。因此,我不需要对任何高于用户实体的组进行分组。但我并不打算拥有一个特定的用户实体,而是依赖实体本身的UserProperty 在我看来,如果我想要事务(基于每个用户),我将需要某种根用户实体作为属于其数据层次结构的所有实体的父级,无论该实体实际上有多薄,即基本上没有属性 这是正确的吗

所以我有一个应用程序,如果我诚实的话,它并不真正需要事务完整性(很多更新,没有一个是关键的)。因此,我打算暂时把实体集团抛在一边。但我仍然想理解它(来自关系背景)

在我看来,对我的应用程序的所有查询都将以用户为基础。因此,我不需要对任何高于用户实体的组进行分组。但我并不打算拥有一个特定的用户实体,而是依赖实体本身的UserProperty

在我看来,如果我想要事务(基于每个用户),我将需要某种根用户实体作为属于其数据层次结构的所有实体的父级,无论该实体实际上有多薄,即基本上没有属性

这是正确的吗


为冗长的内容道歉,我只是在今晚的实践中真正地ping了schema less的实际含义…

你基本上是正确的。如果需要事务性功能,则需要对它们进行分组。但是,您可以将多个实体分组在一起,而无需创建实际的根实体,即数据存储中的实体。而是创建一种虚拟根实体。此功能的一个重要用例是能够在创建子对象之前将其创建为父对象

可以使用 没有先创建的祖先路径 父实体。要做到这一点,你必须 使用 种类和键名称,然后将其用作 新实体的父级。所有实体 具有相同根的祖先属于 同一实体组,无论是否 路径的根表示 实际实体

那句话来自于

在我看来,如果我想要事务(基于每个用户),我将需要某种根用户实体作为属于其数据层次结构的所有实体的父级,无论该实体实际上有多薄,即基本上没有属性

我不会仅仅创建一个根用户实体,然后将所有内容都放到它的实体组中。想想你需要什么交易。如果您的用户实体上没有属性,您将在与的事务中使用它什么

我不知道你的数据,但假设这是一个博客系统,你有用户、帖子和评论。Post模型包含大量的注释,因此您不必统计它们。您可能希望事务确保在创建注释时,可以安全地更新“注释的数量”属性

在这种情况下,将所有用户的帖子和评论放在一个实体组中是不必要的开销。相反,您可以将注释发布在与其所属的帖子相同的实体组中。没有必要将帖子与用户放在同一个组中,事实上这是个坏主意,因为在任何一个用户帖子中发布的评论都会争着写同一个实体组

今天我在博客上写了一篇文章。你可能会发现它很有用