我需要为事情制定一个时间表。每个日程表都有开始和结束时间,不能与同一事件的其他日程表重叠。将会有许多事情,有着大致相似的时间表。很容易就会有几十次读操作,如果不是几百倍的读操作的话,所以我可以写到主机上,并从副本中读取。因此,我需要一个数据库,它支持插入时对其他现有记录进行原子验证,并且具有简单的复制。基本上,我想实现类似这样的东西
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,15是NoSQL DB中的时期开始时间,18是时期结束时间。
今天我花了相当多的时间搜索不同的数据库,到目前为止,我可以看到Mongo支持验证,但它似乎或多或少是schema的替代品,Couchbase似乎有非常类似SQL的查询语言,但从文档中还不清楚它是否只是表面上的。这样的数据库存在吗?
发布于 2019-06-20 19:21:31
我的感觉是,您正在尝试将应用程序逻辑推送到数据库。我从来没有听说过任何数据库内部都有这种验证(可能是关系数据库中的触发器?)
Couchbase非常擅长大规模的快速读写,而查询语言使得查询JSON变得非常好。但是,您的应用程序将需要验证您是否有任何冲突。
https://stackoverflow.com/questions/56641953
复制相似问题