V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
crazycookie

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

  •  
  •   crazycookie · Mar 21, 2011 · 5682 views
    This topic created in 5530 days ago, the information mentioned may be changed or developed.
    没有找到一个很官方的说明(Python,java的貌似docs中有),思维方式还在传统数据库
    大家有推荐的文档或者方法么?
    3 replies    1970-01-01 08:00:00 +08:00
    dreampuf
        2
    dreampuf  
       Mar 21, 2011
    召唤@keakon

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

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

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

    每一点都能衍生出一篇文章,而且大部分是取舍的问题,所以我就不细说了。把Google的英文官方文档和文章全部弄懂,然后自己总结差异是最好的方法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3847 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:32 · PVG 12:32 · LAX 21:32 · JFK 00:32
    ♥ Do have faith in what you're doing.