4

我和我的初创应用程序公司正在开发一款基于回合制的多人 iPhone 应用程序。可以说我们谁都没有任何数据库或服务器知识。虽然,我们愿意学习。

游戏流程将类似于:WordFeud、WordsWithFriends、Rumble 等游戏。

让我从网络上的大量搜索让我们开始:

我们决定使用CouchDB作为存储有关用户、游戏会话和其他内容的信息的工具。CouchDB 是一个开源的 noSQL 数据库系统。原因是我们被教导,它应该支持很多不同意的用户。此外,它可以扩展——我们当然希望做大。

我们的 CouchDB 托管在IrisCouch上。IrisCouch 是为运行 CouchDb 而设计的“云端”托管服务。

因此,我们已经启动并运行了一个 CouchDB 服务器,并且我们知道如何从服务器查询数据的基础知识。

我们现在最大的困惑是我们应该如何设置系统以根据最佳实践工作。现在,我们能够接收数据并将数据提交到服务器。

我们的游戏应该有 Facebook 集成,以便用户可以通过我们的应用程序或通过 Facebook 注册。之后,他们可以与随机匹配的对手一起玩,或与朋友一起玩。比赛开始后,一名球员会收到一组要问的问题,在他回答后,应通过推送通知通知另一名球员轮到他们了。几回合后游戏结束。

在这一点上,我们认为这可能是应用程序流程的最佳解决方案:

  1. 一个用户连接到另一个用户 -> 一个游戏会话作为一个名为“游戏”的数据库中的文档打开。
  2. 新创建的文档包含玩家姓名、问题、答案等
  3. 一个名为“whos_turn”的字段决定了两个玩家中的哪一个轮到它。
  4. 游戏结束后,会话被删除。

同样,正如您所看到的,我们对如何真正做到这一点一无所知,但这是一般的想法。

所以,我的问题如下:

是直接从 iPhone 应用程序查询数据,还是通过 Web 服务查询数据最好?

设置数据库以最好地管理应用程序流的最佳方式是什么?

任何可能使我们更接近的信息将不胜感激:)

先谢谢了!

奥拉夫·冈德森


编辑#1:我们的 Objective-C 程序员设法使用 CouchDb 连接两个 iPhone 设备。iPhone 应用程序包含一个表视图,该表视图与数据库有并发连接,因此当有人 POST 到数据库时,它会显示在所有其他已连接手机的表视图上。看哪:一个严重无效的聊天系统。

4

2 回答 2

5

如果是多人游戏,您需要让应用程序与远程 iriscouch.db 通信,但我担心您声明您或您的朋友都没有任何数据库经验。你愿意学习,所以我认为最好的起点是:

http://guide.couchdb.org/editions/1/en/index.html

如果您计划连续擦除文档,您可能会发现可扩展性存在几个问题。数据库大小在 couchdb 上可能相当大,您需要定期压缩和清理数据库。但我认为目前还不是主要问题,因为这还处于起步阶段。

您的团队应该解决“设置数据库和最佳管理应用程序流程的最佳方式”的问题。如果您没有任何数据库经验的人,您应该尝试找到愿意帮助您的人。应该是在数据库方面有丰富经验的人。您可能会在http://www.odesk.com找到一些相当合理的专业人士

老实说,如果你没有这样的人物——无论是作为自由职业者还是贡献者——来帮助你在游戏中拥有可靠的数据库逻辑,以确保出色的用户体验,我认为你不会成功。

例如:您是否考虑过使用位于美国 (Iriscouch) 的数据库与您的用户所在位置的延迟问题?

出于这个原因,您可能希望尽可能多地做客户端(嵌入式数据库,如 sqlite 或 touchDB,本质上是 iPhone 的 couchDB)

对于 iPhone 应用程序,您可能想尝试专门为https://github.com/couchbaselabs/TouchDB-iOS制作的 TouchDB (注意:您需要连接来检查转弯等,这可能不是理想的解决方案,但它可以在本地存储一些信息)。

要解决这个问题,您需要有 couchdb 经验的人来设置一个合适的、可用的应用程序。对您的想法充满热情并没有错,但要使其成功,您需要数据库方面的技术头脑。当然,您自己也可以很好地学习这一点。阅读 CouchDB 书籍后,您应该能够创建一个基本流程来满足您的需求。

当然,其他更有经验的用户可能会提供更全面的答案或示例布局,但我认为这不是最好的方法。即使有人发布了文档结构的完整布局以及如何查询它,如果出现问题,例如会话没有被删除、冲突等,你将如何为应用程序提供服务?因此,我真诚地建议您为您的案例获得一些特别的专业知识。

这也可能导致分析合适的替代方案。我认为您不应该相信 CouchDB 可以扩展,因此是您最好/唯一的选择(当然,如果您觉得这是一个不错的选择,那就去吧)。例如 twitter、google adwords 和许多其他在线应用程序都使用 mysql 来存储它们的数据,因此可以肯定 CouchDB 不是唯一可以扩展的数据库!

于 2012-04-30T04:31:23.713 回答
0

我认为这个演示应用程序可能是一个很好的例子:iOS Couchbase Demo

于 2013-07-09T14:57:30.260 回答