0

我正在 GAE 中构建一个 Web 应用程序,它需要利用数据存储实体之间的一些简单关系。此外,我想从一开始就尽我所能使导入和导出更容易,并减少将应用程序迁移到另一个平台的开发时间。

我可以看到处理数据存储中实体之间关系的两种可能方式:

  • 将相关实体的键(或 ID)作为字段包含在实体中或
  • 创建唯一标识符作为实体的应用程序定义字段以允许其他实体引用它

后者与 GAE 的集成度较低,并且需要某种机制来确保唯一标识符实际上是唯一的(这又将依赖于祖先查询)。

然而,后者可能使数据可移植性更容易。例如,如果实体是在本地计算机上创建的,则可以毫无问题地上传它们(假设唯一标识符是唯一的)。相比之下,依赖 GAE 定义的 ID 将不起作用,因为 ID 从开发环境到部署环境将不一致。

也可能存在数据可导出性考虑,这意味着应用程序定义的唯一标识符更可取。

这样做的最佳方法是什么?

4

1 回答 1

1

GAE 的数据存储不能很好地导出到 SQL。通常情况下,需要在 GAE 上对数据进行非常不同的建模以支持某些查询,即多对多关系。非规范化也是支持对 GAE 数据存储的某些查询的正确方法。祖先关系是 SQL 世界中不存在的东西。

为了导入导出数据,您需要编写特定于您的数据模型的脚本。

如果您计划与 SQL 兼容,请使用 CloudSQL 而不是数据存储。

在开发/生产之间移动数据方面,您已经确定了执行此操作的方法。没有真正“简单”的方法。

于 2013-04-28T22:34:51.283 回答