【发布时间】:2010-09-25 02:51:38
【问题描述】:
一个简单的问题,谷歌应用程序的数据存储是否支持外键映射,如果是,任何人都可以启发我 XD,或分享一些链接。
【问题讨论】:
标签: java database google-app-engine foreign-keys
一个简单的问题,谷歌应用程序的数据存储是否支持外键映射,如果是,任何人都可以启发我 XD,或分享一些链接。
【问题讨论】:
标签: java database google-app-engine foreign-keys
您可以使用ReferenceProperty 指代不同种类的其他项目,或使用SelfReferenceProperty 指代相同种类的其他项目。
【讨论】:
所有实体都有一个键,您可以引用它并将其存储在实体的属性中。请注意,持有实体的密钥并不意味着指向的实体实际存在 - 即不存在关系完整性。同样,删除存在的实体对键没有任何影响。
类似的 SQL 构造是一个表,其中的列包含一个值,该值是其他地方的主键,但没有外键关系,因此没有关系完整性。
有一个具有级联删除功能的依赖子项的概念。这是一个 JDO 结构,数据存储本身并不支持 - 删除由更高级别的 JDO 框架管理。
您也可以使用嵌入式类。嵌入对象本质上包含在持有对象存储中,作为普通属性。如果你删除了持有类,你就删除了嵌入的对象。
http://code.google.com/appengine/docs/python/datastore/keyclass.html http://code.google.com/appengine/docs/java/datastore/relationships.html#Dependent_Children_and_Cascading_Deletes http://code.google.com/appengine/docs/java/datastore/dataclasses.html#Embedded_Classes
【讨论】: