首页 > 代码库 > GAE Datastore Entities

GAE Datastore Entities

我们的程序与抽象模型互动,因此不需要管理细节。

与关系型数据库大不相同,以至于谷歌称之为datastore,而非database。

App数据存储在数个不同位置,依据best-of-breed consensus protocol。

datastore最好理解为object database. datastore中的一个object理解为一个entity。

Entity: key – data

一个entity在整个系统中具有一个唯一识别key。可以根据key快速找到entity。

Key可以作为data被存储在entity中,这样能相互创建引用。

key分为几部分:

- application‘s id

- kind

- entity ID [key name(string)/ID(integer)]

entity创建后key不能变。

entity的data存储在一个或多个property中,每个property都有name和至少一个value。

========*========

Python Datastore API

Python objects来表示datastore entity:

objects的class表示了entity kind,class name表示了entity kind name。

通过继承基类,创建新class,来创建新kind的entity。

这个对象的属性对应entity的property。

调用entity的class的实例的key方法,得到一个key实例,通过调用这个实例的kind方法、d方法,可以得到这个entity的key的kind/id。

*操作注意:在测试entity之后,更新entity之前,这段空挡期间,其他程序可能更改了数据库,要避免错误,必须使用transaction。