Мне нужно избегать перекрытия диапазонов дат в моей базе данных. Я бы хотел, чтобы это было агностиком базы данных - это довольно сложная проблема, даже если она не является андростикой базы данных (http://asktom.oracle.com/pls/asktom/f?p=100:11:0%3a% 3a% 3a% 3aP11_QUESTION_ID: 474221407101). У меня есть только одно приложение, записывающее в базу данных. Из него читают несколько других, где критическая производительность чтения. Приложение, выполняющее запись, является потоковым - это веб-приложение и находится в кластере.Одиночный рабочий процесс или что-то большее, чем DB?
Итак, я думал, что проще всего просто обеспечить, чтобы за один раз записывался только один процесс. Правильно ли это? Если да, должен ли я просто иметь одно потоковое приложение, которое прослушивает некоторую очередь запросов и обрабатывает эти запросы в том порядке, в котором они их получат? В любом случае у меня есть все эти запросы в базе данных, и я просто думал использовать дату и статус created_at для их обработки.
Моей первой мыслью было бы написать триггер, который запускается на любом DML и обеспечивает соблюдение вашего бизнес-правила. Вероятно, работа для Oracle, не уверен в mySql. Каждый db отличается и имеет разные функции/функциональные возможности, поэтому удача с одним размером подходит для любого подхода. – tbone