Подтвердить что ты не робот

CouchDB - пример реального мира

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

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

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

Итак, как мне начать?

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

  • создать базу данных для каждого пользователя, например, июль, Ann
  • в этой БД, добавьте документ с типом контакта, документ будет выглядеть так, как показано на первом месте, см. код 1
  • create/edit/delete прямо необходимо просто выполнить PUT, POST, DELETE в хорошей базе данных
  • поиск будет обрабатываться с помощью couchdb-lucene, например dnolen, предлагаемого

теперь вот сложная часть, я действительно не понимаю всю концепцию map/reduce и как я могу использовать ее для выполнения заданий, которые я использовал с 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 ...
}
4b9b3361

Ответ 1

В предстоящей книге О'Рейли можно читать онлайн: http://books.couchdb.org/relax/

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

Хранение и извлечение данных очень просто, самая сложная часть - мышление в терминах map/reduce-views вместо sql-запросов.

Ответ 2

IBM имеет отличный учебник, используя curl для чтения/записи через REST.

Ответ 3

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

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