我需要保持时间表。每个时间表都有开始和结束时间,并且不能与同一事物的另一个时间表重叠。会有很多事情,时间表大致相同。很容易会有几十个(如果不是数百倍的话)然后是写入的话,所以我可以写一个母版并从副本中读取。因此,我需要一个数据库,该数据库在插入其他现有记录时支持原子验证,并具有简单的复制功能。基本上我想实现
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是id,NoSQL DB中的15是时代开始时间,而18是时代结束时间。
我今天花了很多时间来搜索不同的数据库,到目前为止,我可以看到Mongo支持验证,但是它似乎或多或少地替代了模式,Couchbase似乎具有非常类似于SQL的查询语言,但是从文档尚不清楚是否只是表面的。这样的数据库是否存在?
答案 0 :(得分:0)
我的感觉是您正在尝试将应用程序逻辑推送到数据库。我从未听说过任何内部进行过此验证的数据库(也许是关系数据库中的触发器?)
Couchbase确实非常擅长快速/大规模读写,并且查询语言非常适合查询JSON。但是,您的应用程序将需要验证是否存在冲突。