CouchDB一个真实世界的例子

今天晚上在我的日常技术Googlesearch中,我看到很多关于如何比任何RDBM执行好一百到几百倍的演示之后,发现了couchDB,它将如何帮我们节省SQL语言,表格,主键等等。 我决定自己尝试一下。 唯一的问题,似乎我无法弄清楚它是如何工作的。

就像一开始,我想使用couchDB编写一个web联系人pipe理器。 该项目将使用户能够做一些基本的东西

  • 创build/编辑/删除联系人
  • 看到他们订购的联系清单
  • search他们在各种标准

那么我该如何开始?

这里有一些我的想法

  • 像7月,Ann那样为每个用户创build一个数据库
  • 在这些数据库中,添加一些types联系的文件,文件首先看起来像这样代码1
  • 创build/编辑/删除很简单,只需要在好的数据库中执行PUT,POST,DELETE
  • search将像dnolenbuild议的那样由couchdb-lucene处理

现在这里来了困难的一部分,我真的不明白整个地图/减less的概念,以及如何使用它来做我以前用SQL做的工作。 还有意见如何处理分页,也分组。

我想build立一个像这样的分页链接的屏幕

 John,Doe
 Johny,Hallyday
 Jon,Skeet

 ABCDEF ** J **等.... < - 这些链接,以查看具有该名字的人

我应该创造什么样的观点来实现这一点,如果你能提供样品,那就太好了。


联系文件。

{ type: 'contact', firstname: 'firstname', lastname: 'lastname', email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'], phone: ['home': '+81 00 0000 0000'], address: [] ... some other fields maybe ... } 

O'Reilly即将出版的书可以在线阅读: http : //books.couchdb.org/relax/

只需安装并玩耍 – 您可以在命令行中使用curl执行直接的http请求,也可以使用内置的称为futon的Web界面。

存储和检索数据非常简单,最难的部分是用map / reduce-views而不是sql查询。

IBM有一个很好的教程 ,使用curl通过REST接口读/写。

您的应用程序与CouchDB相当容易。 你将有一个每个用户的数据库。 联系人只是特定用户数据库中的文档。 CRUD只是使用HTTP与数据库交谈。 您可以创build视图来发送键(姓,名)以允许sorting。

对于强大的search,我会推荐couchdb-lucene。