我正在创建一个具有以下层次结构的数据库:主题-> 主题-> 页面。我知道永远只有两个科目。艺术和科学让我们说。我是否可以创建一个主题,将父键设置为字符串“Arts”,这样我就不必创建一个只有两个值的 db.model 主题?
另外,如果我必须创建一个从 db.Model 继承的 Subject 类,有没有办法可以避免输入任何参数,因为 key.name 将是主题的名称?
我正在创建一个具有以下层次结构的数据库:主题-> 主题-> 页面。我知道永远只有两个科目。艺术和科学让我们说。我是否可以创建一个主题,将父键设置为字符串“Arts”,这样我就不必创建一个只有两个值的 db.model 主题?
另外,如果我必须创建一个从 db.Model 继承的 Subject 类,有没有办法可以避免输入任何参数,因为 key.name 将是主题的名称?
蒂姆的回答是正确的。我只是想补充一下,将所有实体置于两个祖先之下是糟糕的设计。
在您需要确保事务完整性的情况下存在祖先。这对您来说可能是正确的,在这种情况下,请忽略这一点。
祖先的使用限制了该祖先树中所有实体的写入性能。如果您真的不需要锁定所有这些实体,您可能实际上不会使用祖先,而只是使用普通属性。
只需指定一个祖先键就足够了,祖先本身不必存在。
您不必在模型中提供任何属性。
class MyModel(db.Model):
pass
最后我猜你才刚刚开始,所以我建议你ndb
在走远之前切换到。