2009-06-03 153 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