带有 Google App Engine 的 iPhone 应用程序

标签 iphone python google-app-engine gql

我已经设计了一个 iPhone 应用程序的原型(prototype),它使用(内部)SQLite 作为其数据库。目的是最终让它通过 PHP 与服务器通信,PHP 将使用 MySQL 作为后端数据库。

然而,我刚刚发现 Google App Engine,但对其知之甚少。我认为使用 Python 接口(interface)写入数据存储会很好 - 但我对 GQL 的功能知之甚少。我基本上已经使用 MySQL 编写了所有工作数据库代码,并使用 SQLite 在 iPhone 上进行了内部测试。 GQL 会提供与 SQL 相同的功能吗?我在网站上看到它不支持联接查询。而且真的有关系吗?

基本上,我想我的问题是,通常使用 SQL 后端的应用程序能否与 Google 的 App Engine 和 GQL 一起正常工作?

我希望这一点很清楚......任何指导都很好。

最佳答案

确实,Google App Engine 是一款非常酷的产品,但数据存储与常规 mySQL 数据库不同。这并不是说 GAE 数据存储无法满足您的需求;而是说,GAE 数据存储可以满足您的需求。但是,您可能需要进行一些修改。

您一开始就注意到的最显着的差异是 GAE 使用对象关系映射作为其数据存储方案。本质上,对象图保存在数据库中,维护其中的属性以及与其他对象的关系。在许多情况下,ORM(对象关系映射)可以很好地映射到关系数据库之上(这就是 Hibernate 的工作原理)。但映射并不完美,您会发现需要进行更改才能保留数据。此外,GAE 有一些独特的限制,使事情变得有点复杂。一个让我很困扰的限制是无法查询属性路径:例如“选择...其中dog.owner.name = 'bob'”。正是这些规则迫使您在开始之前阅读并理解 GAE 数据存储的工作原理。

我认为 GAE 可以很好地满足您的情况。可能需要一些时间来了解一般的 ORM 持久性和具体的 GAE 数据存储。

关于带有 Google App Engine 的 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2124688/

相关文章:

iphone - CustomTableCellView的实现-layoutSubviews需要调用super,NSInternalInconsistencyException

iphone - 在我的应用程序中打开文件

Python模拟keydown

java - 如何通过 id(长值)检索 Google Appengine 对象?

java - UserService 注销后检索到错误的用户

iphone - 在 AppDelegate 中实例化的 UINavigationController

iphone - Mapkit 中脉动的蓝色圆圈和点 - iPhone SDK

python - 生成随机二进制矩阵

python - python中的传出UDP嗅探器?

python - 如何使用GAE在网站上显示youtube视频