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。