Сначала мы используем код структуры сущностей для сохранения отчетов в базе данных SQL, многие объекты имеют много-много отношений, поэтому данные разбиваются на разные таблицы.Чтобы предотвратить дублирование данных, мы сначала проверяем, сохранен ли определенный объект, а затем добавляем отношение к базе данных.
Например, есть объект Person, который может иметь много стран, и объект Country, который можетудерживать несколько объектов Person.
В начале процесса сохранения мы запрашиваем базу данных о существующих странах и обновляем их в объекте Person, если они существуют, или создаем их, если их нет.
Этот поток работал нормально, в то время как у нас есть только один процесс сохранения одновременно, но теперь мы получили требование поддерживать его много раз одновременно, и я беспокоюсь, что один поток добавит новую страну сразу после того, как другой поток проверитсуществующие страны.
Мне было интересно, какие хорошие методы существуют для решения этой проблемы с минимальным влиянием на производительность.
Спасибо!