когда обновляются NS это значит, что там хотя бы один из них или заменяется другим или добавляются новые, порядок всегда строго отсортирован (в парсере сортировка)
по входным даным: каждый день есть выгрузка всех доменов по доменной зоне, которая состоит из списка
example.com = [ns1, ..., nsX]
если домена не было в базе в этот момент, то нужно добавить его с created_at = текущий день;
если в базе есть домен, в выгрузке не было - значит нужно поставить этому домену в базе в поле deleted_at = текущий день;
если изменились NS - значит нужно изменить их в базе и поставить updated_at = текущий день;
и если домен уже был удален когда-то (deleted_at не null), а он снова появился в выгрузке - нужно поставить deleted_at = null, created_at = текущий день, ну и скорее всего сменить NS