joh*_*n2x 11 google-app-engine app-engine-ndb
在AppEngine的NDB数据存储区中,似乎有两种方法可以将对象相互关联.有ndb.KeyProperty和父母/祖先的钥匙.关于什么时候我应该使用其中一个,我有点困惑?
现在我一直在使用KeyProperty,因为它是最熟悉的,但我想知道什么时候比另一个更合适.
Amb*_*ber 16
祖先是等级的 - 当你在事物之间有层次关系时可以使用它们(例如,在你可能拥有Forums 的论坛系统中,Topics又具有Posts).
KeyProperty本质上不是等级的 - 它只是提供了一个链接.它应该用于项目之间的非分层链接.重用前一段中的论坛示例,可以使用a KeyProperty将a链接Post到User创建它的人 - 因为Users不在forum-topic-post层次结构中.它们与所有3个相关(例如,User可能创建帖子,创建主题和/或调节论坛).
但是,最后,祖先和密钥之间的主要权衡是一致性与吞吐量:基于祖先的查询相对于最近的更新提供了强大的一致性,但对于任何给定的实体组和最大值,每秒施加1次修改的限制由于缺乏分配,该组的大小限制.
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |