2009-11-05 2 views
39

Сегодня вечером в моей ежедневной технологии Googling Я столкнулся с couchDB, увидев массу презентаций о том, как он работает в десять и сто раз лучше, чем любой RDBM, как он спасет нас от SQL-языков, таблиц, первичных ключей и многое другое. Я решил сам попробовать. Кажется, проблема только в том, что я не могу понять, как это работает.CouchDB пример реального мира

Как для начала, я хотел бы написать код менеджера контактов с помощью couchDB. Проект позволит пользователю делать базовые вещи, как

  • Создать/Редактировать/Удалить контакты
  • увидеть список их контакта заказал
  • искать их по различным критериям

Так как я Начало ?

Вот некоторые из моих мыслей

  • создать базу данных для каждого пользователя, как июль, Ann
  • в этих БД, добавить какой-нибудь документ с контактом типа, этот документ будет выглядеть в первую очередь увидеть код 1
  • создавать/редактировать/удалять прямо вперед, просто нужно сделать PUT, POST, DELETE в хорошей базе данных
  • поиска будут обрабатываться CouchDB-Lucene как dnolen предложил

теперь вот сложная часть, я действительно не понимаю всю концепцию карты/сокращения и как я могу использовать ее для выполнения заданий, которые я использовал для SQL. Также с представлениями, как вы обрабатываете пейджинг, а также группируете.

Я хотел бы построить экран с пейджинговой набором ссылок что-то вроде этого

 
John, Doe 
Johny, Hallyday 
Jon, Skeet 

A B C D E F **J** etc .... <-- those are link to see persons with that first name 

, что вид я должен создать для достижения этой цели, если вы можете предоставить образцы это было бы замечательно.


Контактный документ.

{ 
    type: 'contact', 
    firstname: 'firstname', 
    lastname: 'lastname', 
    email: ['home': '[email protected]', 'work': '[email protected]'], 
    phone: ['home': '+81 00 0000 0000'], 
    address: [] 
    ... some other fields maybe ... 
} 
+0

смешно Я читаю как раз наоборот, что CouchDB очень медленный. Как и в случае с любым программным обеспечением erlang, он медленный с 1-4 ядрами, но только начинает светиться при масштабировании до 32+ ядер – Toad

+2

Для аналогичного продукта, но на основе C++ вы можете посмотреть: mongodb – Toad

+1

вы можете указать ссылку? – RageZ

ответ

23

Предстоящий книга O'Reilly свободно читать онлайн: http://books.couchdb.org/relax/

Просто установить и играть вокруг - вы можете делать прямые запросы HTTP с помощью локон в командной строке, или использовать встроенный в веб-интерфейсе называемый футон.

Хранение и получение данных на самом деле очень просто, самая сложная часть - это мышление с точки зрения карт/сокращений вместо запросов sql.

+0

спасибо за ссылку на самом деле книга более подробная, то документация на кушетке DB ... – RageZ

+1

на самом деле документация CouchDB API лучше, чем много проектов. Он постоянно обновляется и точен. Но, как и вся документация API, это не поваренная книга, это справочная работа. –

+1

http://docs.couchdb.org/en/latest/ –

5

Ваше приложение довольно легко связано с CouchDB. У вас будет база данных для каждого пользователя. Контакты - это просто документы в конкретной пользовательской базе данных. CRUD просто разговаривает с базой данных, используя HTTP. Вы можете создавать представления, которые выдают ключи (фамилия, имя), чтобы разрешить сортировку.

Для получения мощного поиска я бы рекомендовал couchdb-lucene.

Смежные вопросы