Я использую CouchDB для синхронизации автономных и онлайн-данных. Проблема в том, что поскольку couchDB не имеет слоя между клиентом и сервером, проверка вроде бы плохая. Единственное поле, которое может быть уникальным, - это _id.
Например, если вы хотите убедиться, что поле «телефон» уникально, вам нужно убедиться, что номер телефона находится где-то в _id (555-666-777_username), а поле «телефон» - 555-666-777. .
Моя проблема: у меня есть календарь, который создает события, которые не могут перекрывать друг друга. Событие имеет время начала и время окончания. Как я могу убедиться, что пользователь не будет ставить дату между временем начала и временем окончания.
Одна идея вместо создания одного документа с startTime и endTime. Это создание различных документов, даты которых находятся в пределах желаемого диапазона пользователя.
Пример: пользователь выбирает диапазон между 2018-09-02 и 2018-09-10, поэтому я создам 8 документов с _id, состоящим из {date} {username}.
Если вы считаете, что couchDB не подходит для такого рода вещей, я открыт для предложений.