База данных NoSQL с поддержкой insert-select-like - PullRequest
0 голосов
/ 18 июня 2019

Мне нужно вести график вещей. Каждое расписание имеет начальное и конечное время и не может перекрываться другим расписанием для той же вещи. Будет много вещей, с примерно одинаковыми графиками. Будет легко десятки, если не в сотни раз больше чтения, чем записи, так что я в порядке с записью в мастер и чтением из реплик. Итак, мне нужна база данных, которая поддерживает атомарную проверку при вставке в другие существующие записи и имеет прямую репликацию. В основном я хотел бы реализовать что-то вроде

insert into events
select 'my-event', 15, 18
where (select id from events where end < 15 limit 1) = (select id 
from events where start < 18 limit 1);

, где my-event - это идентификатор, 15 - время начала эпохи, а 18 - время окончания эпохи в БД NoSQL.

Сегодня я потратил довольно много времени на поиск в разных базах данных, и до сих пор вижу, что Mongo поддерживает проверку, но кажется, что это более или менее замена схемы, а Couchbase, похоже, имеет очень похожий на SQL язык запросов, но из документов не ясно, если это только поверхностно. Существует ли такая база данных?

1 Ответ

0 голосов
/ 20 июня 2019

Мне кажется, что вы пытаетесь протолкнуть логику приложения в базу данных. Я никогда не слышал о какой-либо базе данных, которая имеет эту внутреннюю проверку (может быть, запускает в реляционной базе данных?)

Couchbase действительно хорош в быстром / чтении и записи в масштабе, а язык запросов делает его действительно хорошим для запросов JSON. Тем не менее, ваше приложение должно быть проверено, если у вас есть какие-либо конфликты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...