Сегодня вечером в моем ежедневном техническом 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 ...
}