Google app engine 理解googlendb实体关系
我正在处理一个基于ndb和两个实体(a和B)的google应用程序引擎应用程序,其中a与B之间有一对多的关系,并使用如下属性实现Google app engine 理解googlendb实体关系,google-app-engine,app-engine-ndb,google-cloud-datastore,Google App Engine,App Engine Ndb,Google Cloud Datastore,我正在处理一个基于ndb和两个实体(a和B)的google应用程序引擎应用程序,其中a与B之间有一对多的关系,并使用如下属性实现 bobjects = ndb.KeyProperty(repeated=True); 我已经创建了一个A对象(比如a1)和三个B对象(b1、b2、b3)。 因此,我将b1、b2和b3键添加到a1.objects向量中。 它工作正常,但我因此从数据存储中删除了b1、b2和b3,它们在a1(!)中仍然可见。为什么?想想文件系统的快捷方式/符号链接 当您创建指向文件的快捷
bobjects = ndb.KeyProperty(repeated=True);
我已经创建了一个A对象(比如a1)和三个B对象(b1、b2、b3)。
因此,我将b1、b2和b3键添加到a1.objects向量中。
它工作正常,但我因此从数据存储中删除了b1、b2和b3,它们在a1(!)中仍然可见。为什么?想想文件系统的快捷方式/符号链接 当您创建指向文件的快捷方式/符号链接,然后删除原始文件时,快捷方式/符号链接仍然保留在文件系统中,指向不再存在的内容 如果删除了目标,文件系统将无法跟踪所有创建的快捷方式/符号链接并将其删除,这将非常昂贵。为什么不这样做 KeyProperty存储密钥。没有什么可以说的,它们必须是实际存在的实体的键,甚至是引用您甚至定义的实体类型的键。它们只是钥匙
GAE不是关系数据库,您不应该将其视为关系数据库。如果需要保留对其他实体的引用,则需要确保在必要时自己更新这些引用。我理解这一点,但我看不出如何通过网页检索引用的数据,尽管它们不再存在于数据存储中