有网络应用程序,与新闻有关,它使用MySQL数据库并向用户提供基于Web的界面。
我想构建一个支持移动界面的iOS应用程序。用户界面非常简单,我对此有经验。
问题在于我没有经验的数据库。 我将学习数据库,并可能参加Coursera课程。我不是要求你教我这个。我只是想知道在未来几个月我应该投入哪些技术。
到目前为止,我的理解是应用程序不应该直接与数据库通信, 但是,服务器上应该有一个代表应用程序与数据库通信。
这是我想要清楚理解的问题和部分,如果我错了,请纠正我。
我将不得不编写某种unix程序,它在服务器上运行并与数据库通信,然后与应用程序进行通信?怎么样?使用网页视图?使用unix套接字与应用程序通信? SSH? Apple对哪一个很酷?
我喜欢在服务器上写这样的东西:python(有经验),java(有经验),也许ruby(没有经验)。我宁愿避免编写脚本语言。
他们还好吗?哪一个最适合?这个中间人也必须在拥有数据库的同一台服务器上,或者可以是互联网上的另一台机器(我更喜欢这个,所以我可以把它放在我自己的VPS上而不必搞砸了服务器机器)
答案 0 :(得分:1)
这与今晚的another question类似,但你是从另一个角度来看它。
一般而言,需要能够在脱机模式下运行的iOS应用程序需要拥有自己的数据库。这意味着创建Core Data模型以存储应用程序所需的所有数据。在内部,它存储在SQLite数据库中。
如果您想创建一个仅限在线的应用程序,那么它会更容易一些,因为您不必担心核心数据部分,而是可以专注于构建服务API。如果您熟悉Python,那么最好的选择是Django来提供该层。您需要实现一些可以接收请求的端点,将其转换为适当的数据库调用,然后以机器可读的格式呈现结果。
即使对于大规模系统,脚本语言也是最后端的功能。在大多数情况下,数据库将成为瓶颈,而不是用于与之交互的语言。甚至Twitter一直坚持使用Ruby,直到他们达到数千万活跃用户为止,所以除非你达到这个水平,否则不用担心。
对于大多数应用程序,使用HTTP作为传输机制,JSON作为编码方法是可行的方法。它构造起来非常简单,易于使用且相当容易阅读。可能有很多方法可以用来阅读和写这个,但这是另一个问题。
对于以百计测量用户数的小规模应用程序,您可以在同一服务器上托管应用程序和数据库。即使是具有512MB内存的适度VPS也可以完成这项任务,但是对于较重的负载,您可能希望投资1GB的实例。这实际上取决于人们访问您的应用程序的频率以及峰值负载的情况。