今晚在我的日常技术谷歌搜索中,我遇到了 couchDB,在看到大量关于它如何执行比任何 RDBM 好十到一百倍的演示之后,它如何将我们从 SQL 语言、表、主键等等中拯救出来。我决定自己尝试一下。唯一的问题似乎我无法弄清楚它是如何工作的。
首先,我想使用 couchDB 编写一个 Web 联系人管理器。该项目将使用户能够做一些基本的事情,比如
- 创建/编辑/删除联系人
- 查看订购的联系人列表
- 根据各种标准搜索它们
那么我该如何开始呢?
这里是我的一些想法
- 为每个用户创建一个数据库,例如July, Ann
- 在那些数据库中,添加一些类型为联系人的文档,该文档首先看起来像这样,请参见代码 1
- 创建/编辑/删除很简单,只需要在好的数据库中做PUT、POST、DELETE
- 搜索将由 couchdb-lucene 处理,如 dnolen 建议的
现在困难的部分来了,我并不真正了解整个 map/reduce 概念以及如何使用它来完成我以前使用 SQL 所做的工作。还有视图如何处理分页,还有分组。
我想用一组类似这样的链接建立一个屏幕
约翰,多伊 约翰尼,哈利戴 乔恩,飞碟 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 ...
}