А какие плюсы по сравнению с CouchDB? Пока навскидку всё описанное относится и к ней, да и другоим документно-ориентированным базам. Хотя, конечно, перестраивать индекс при каждом запросе на чтение характерно для Couch :)
К сожалению не имел удовольствия работать с CouchDB, однако из основных отличий от CouchDB это измененные алгоритмы определения фрагментации данных, более удобная работа с кластерами, устранение проблем с хранением избыточной информации (ревизии документа). Но в целом этому нужно посвящать отдельную статью. Я просто хотел поделиться опытом своего сотрудничества с Couchbase. И отразил в статье вопросы, которые скорее будут интересны новичкам.
Да. Мне тоже нравится эта база данных, но к сожалению не имею возможности использовать ее в своих проектах. Т.к. они очень сильно завязаны на SQL движки
это не реляционная база данных и в ней нет механизма autoincrement полей
Как связаны реляционность БД и autoincrement?
Во-первых, далеко не во всех реляционных базах данных есть механизм autoincrement.
Во-вторых, использование auto increment полей в большинстве случаев нарушает принцип нормализации БД поскольку добавляет в таблицу избыточное поле, не являющееся естественным ключом — фактически email и password являются зависимыми от login, которое уникально в рамках сервиса, но при этом все три этих поля вдруг становятся зависимыми от какого то нового поля id, и получается что каждое поле в таблице начинает описывать id, который является ключом, и login, который не является ключом, хотя должен был — это явное противоречие 3 нормальной форме.
Если что, лично я не против использования auto increment там, где это надо, просто хочу заметить что наличие/отсутствие этого механизма никак не связано с реляционностью/нереляционностью СУБД, и метод замены auto_increment поля с помощью счетчика, который автор использует в статье, примерно так же реализуется и в реляционных СУБД, не имеющих механизма auto increment — с помощью sequence либо на триггерах
Спасибо за уточнение. Просто в большинстве реляционных БД, что я использовал (да и не я один), этот механизм присутствовал. Да, этот механизм не является обязательным, но в большинстве своем он присутствует именно в реляционных БД.
Пример использования Couchbase в связке с PHP