关于GAE中datastore,一对一,一对多,多对多,等relationship 的设计

2011-03-21 10:05:28 +08:00
 crazycookie
没有找到一个很官方的说明(Python,java的貌似docs中有),思维方式还在传统数据库
大家有推荐的文档或者方法么?
5038 次点击
所在节点    Google App Engine
3 条回复
ccdjh
2011-03-21 10:43:58 +08:00
dreampuf
2011-03-21 10:54:39 +08:00
召唤@keakon

你可以使用传统关系型数据库类似的ReferenceProperty进行相关索引.也可以自己存key_id或者key_name 然后自己控制是否级联.
但是BigTable不是普通的关系型数据库,要始终注意这一点.
keakon
2011-03-21 11:23:03 +08:00
1楼的文章有中文版的说,但只能起个简单的指导作用,具体设计还得根据实际情况

此外我还写了一篇可供参考:
http://www.keakon.net/article/1012

其实要达到想要的效果,可以采用很多种建模方式,最终的差别只在于性能。
一方面是写,需要避免出现频繁改写的实体组,但又要让事务可以简单地完成;此外还得减少索引的数量,但又不会影响基本的查询需求;还有就是减小实体的空间占用。
另一方面是读,需要尽可能减少与数据库交互的次数,以及尽量多用get(key)和批操作。

每一点都能衍生出一篇文章,而且大部分是取舍的问题,所以我就不细说了。把Google的英文官方文档和文章全部弄懂,然后自己总结差异是最好的方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/10131

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX