与关系型数据库引擎不同,谷歌应用引擎使用的Datastore不强制执行模式 - 它不存储行和列,而是存储具有各种属性的实体。尽管如此,是否仍应使用传统的数据库设计呢?
例如,假设我有一个跟踪各种租赁车辆的应用程序。在传统的数据库中,我可能有一个“Buses”表,跟踪车队中每辆公交车的长度和座位数,“Trucks”则有一个列,记录每辆卡车的载重能力和马力。每个公交车和卡车也都有颜色和车牌号码。(如果我想规范化数据库,可以将这些属性分解到一个“Vehicle”表中)。
在谷歌的Datastore中,我倾向于只将公交车和卡车存储为“Vehicle”实体,因为它们共享通用属性,并添加特定于车辆类型的任何属性。
传统数据库模型中,每个Datastore实体表示一个数据库表,使用这种模型有什么优缺点?
将大型实体拆分为较小的实体是否更有效率?
另外还有哪种API推荐使用:JDO、JPA或Datastore低级API?
谢谢!
例如,假设我有一个跟踪各种租赁车辆的应用程序。在传统的数据库中,我可能有一个“Buses”表,跟踪车队中每辆公交车的长度和座位数,“Trucks”则有一个列,记录每辆卡车的载重能力和马力。每个公交车和卡车也都有颜色和车牌号码。(如果我想规范化数据库,可以将这些属性分解到一个“Vehicle”表中)。
在谷歌的Datastore中,我倾向于只将公交车和卡车存储为“Vehicle”实体,因为它们共享通用属性,并添加特定于车辆类型的任何属性。
传统数据库模型中,每个Datastore实体表示一个数据库表,使用这种模型有什么优缺点?
将大型实体拆分为较小的实体是否更有效率?
另外还有哪种API推荐使用:JDO、JPA或Datastore低级API?
谢谢!