Уровень данных в N-уровневом приложении на самом деле не должен делать ничего, кроме как вводить значения и получать значения. Думайте об этом как о службе сохранения.
Все остальное входит в то, чтоизвестный как бизнес и / или логический уровень, за исключением кода пользовательского интерфейса (вы должны хранить эти вещи отдельно, следуя чему-то вроде MVP, MVC или MVVM).
Хотя эта простая проблема на самом деле вызывает проблему с транзакциямиваша модель данных должна в конечном итоге предотвратить это, но если вы не можете завершить операцию как элементарный блок, всегда есть вероятность, что два телефонных номера будут введены одновременно, и оба они окажутся первичными (в зависимости от задержки между приложением ибаза данных).Чтобы корректно обрабатывать эти ситуации, вам нужно, по крайней мере, подумать о восстановлении ошибок (обработке ошибок), которое распространяет эти проблемы осмысленным образом.Не просто сбой вашего приложения.