可以在不使用db.model类的情况下创建密钥作为祖先吗?

时间:2013-07-25 23:57:53

标签: google-app-engine webapp2 gql

我正在创建一个数据库,其中我有以下层次结构:主题 - >主题 - >页面。我知道只会有两个科目。艺术和科学可以说。是否有可能创建一个主题,我将父键设置为字符串“Arts”,这样我就不必创建只有两个值的db.model主题?

另外,如果我必须创建一个继承自db.Model的类Subject,有没有办法可以避免输入任何参数,因为key.name将是主题的名称?

2 个答案:

答案 0 :(得分:0)

只需指定一个祖先密钥就足够了,祖先本身不一定存在。

您不必在模型中提供任何属性。

class MyModel(db.Model):
    pass

最后我知道你刚刚开始,所以我建议你在去远方之前切换到ndb

答案 1 :(得分:0)

蒂姆的回答是正确的。我只是想补充说,将所有实体都放在两个祖先之下是糟糕的设计。

在您需要确保交易完整性的情况下存在祖先。对你来说可能是这样,在这种情况下,忽略这一点。

祖先的使用限制了该祖先树中所有实体的写入性能。如果你真的不需要锁定所有这些实体,你实际上可能不会使用祖先,而只是一个普通的属性。