2009-06-03 201 views
3

我一直在跟某人讨论iPhone开发合约演出的可能性。我在这一点上真正知道的是,有一家公司希望制作一款iPhone应用程序,它将触及他们的内部数据库。我不确定数据库类型是什么(Oracle,MySQL等)。iPhone:通过Internet连接到数据库?

我想知道,如果数据库类型是甲骨文或MySQL是否有用于连接到这些在互联网上一个大的学习曲线?

如果这是一个真正的痛苦,我可能会做更多的研究,然后再接受conract。

+0

你应该问问有人想要访问这个数据库。 – tuinstoel 2009-06-04 07:06:38

回答

14

我会建议不要直接从iPhone应用程序访问数据库。

通常情况下,你需要创建它访问数据库的Web服务,然后你消耗从iPhone应用程序,Web服务。

1

您可以轻松地执行你会在本地通过互联网的连接,以同样的方式,但你打开数据库最多攻击是否会接受来自任何远程IP地址的通信。通常情况下,您只需通过开放端口连接到服务器的远程IP地址,MySQL的默认端口为3306.

我会建议您不要这种系统,除非有一些关键的原因,他们希望他们的内部数据库暴露于全球黑客社区。

1

什么我做的是创建一个使用Sinatra访问在线数据库的Web服务。

+1

网站是sinatrarb.com,而不是sinatra.rb – 2010-09-18 02:12:36

+0

谢谢!我纠正了这一点。 – 2010-09-19 13:52:20

3

创建一个Web服务。这使您可以使iPhone应用程序更适合瘦客户机。让应用程序将命令推送到Web服务进行处理并与数据库进行交互,仅返回应用程序所需的数据。

此选项是应用程序,数据库和客户的安全性更好。

1

从2009年开始的答案现在已经大部分已经过时。

http://ODBCrouter.com/ipad(新增)具有XCode客户端ODBC库,头文件和多线程Objective C对象,可让您的应用程序将SQL发送到服务器端ODBC驱动程序并获取二进制结果!这减少了停止和单独维护SOAP/REST服务器的需要,无论如何,这些服务器在经过一段时间的维护之后仍然非常可怕。

XML方案对于每隔一段时间将静态配置传输到移动设备都可以,但是XML是用于在“服务器环境”中不频繁的公司间类型传输(包括电源线,有线网络和空气空调),并且对于从一个移动应用程序的n个拷贝进入的频繁数据库查询来说绝对没有效率。有第三方JSON库可以提供帮助,但即使使用JSON,也必须将所有内容从数据库中的二进制表示形式编码(并解码)为服务器上的文本表示形式(只有当它将显示给用户在网络浏览器中,但如果移动应用程序要将其翻译成二进制文件,以便它可以在“幕后”执行与用户进行的操作有关的计算,则不会很好)。除了较高的网络开销和电池电量以外,移动CPU还将使用XML和JSON进行绘图,这还会使您在后端服务器上购买更多的RAM和CPU电源,而不仅仅是使用ODBC连接数据库。

+0

Ben对我的后续问题属于这里,但答案是您可以使用VPN或选择支持用户名和密码的数据源(如Oracle或MySQL)。您可以在初始ODBC连接字符串中传递用户名和密码(通过追加“; UID = xxx; PWD = yyy;”),就像访问数据库时Web服务器上的流浪PHP脚本所要做的一样。使用SQL GRANT命令来控制用户可以访问哪些存储过程,表,视图,数据库等。例如,ATM取款机就是如何与他们银行的数据库绑定的。 – 2011-01-06 01:44:17