V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
crazycookie
V2EX  ›  Google App Engine

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

  •  
  •   crazycookie · 2011-03-21 10:05:28 +08:00 · 5153 次点击
    这是一个创建于 5023 天前的主题,其中的信息可能已经有所发展或是发生改变。
    没有找到一个很官方的说明(Python,java的貌似docs中有),思维方式还在传统数据库
    大家有推荐的文档或者方法么?
    3 条回复    1970-01-01 08:00:00 +08:00
    ccdjh
        1
    ccdjh  
       2011-03-21 10:43:58 +08:00
    dreampuf
        2
    dreampuf  
       2011-03-21 10:54:39 +08:00
    召唤@keakon

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

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

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

    每一点都能衍生出一篇文章,而且大部分是取舍的问题,所以我就不细说了。把Google的英文官方文档和文章全部弄懂,然后自己总结差异是最好的方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 22:32 · PVG 06:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.