ник: snipe
Промелькнула такая мысль
Если к Вам поступают данные из разных источников
то как получается что они не стандартизированы? (ответа на вопрос не требуется)
т.е. если организовать поступление данных по определенной форме и в электронном виде
то возможно внесение информации гораздо быстрее (и без привлечения сезонных работников)
возможно для этого придется написать маленькую базку и раздать ее поставщикам информации (бесплатно) в этой базке устроить кучу проверок при вводе инфы дабы избежать именно не правильного ввода инфы (ну там пробелы в начале и в конце слова, ввод правильных окончаний т.е. те которые пишутся через тире -оглы, - кызы, -оол - что бы пробелов не было (или наоборот было написано тире), написание имен собственных с большой буквы и т.д) кроме того установить кучу ограничений и условий на заполнение полей - а мысль простая - не хочешь делать сам, а надо - заставь других
более того - наказывать ни кого не придется - если не будут выполнены все условия то такая запись просто не сохранится и предоставлена не будет
останется только поиск дубликатов записей
по поводу ускорения проверки - мысль такая
есть таблица с данными и у каждой записи есть 2 поля (обзовем их поле1 и поле2) типа boolean для проверенной записи оба значения true для не проверенной - оба false
т.е. таблицу мысленно делим на три части (при помощи этих полей)
часть1 - состояние True True - запись проверена и она уникальна
часть2 - состояние True False - запись оператором не проверена, но проверена функцией и имеющиеся совпадения внесены во временную таблицу
часть3 - состояние False False - запись которую вносят пользователи
далее необходимо каждую запись из части2 сравнить с записями из части1
и каждую запись из части2 сравнить с записями из части2 и совпадения выгрузить во временную таблицу
теперь как я вижу реализацию - нужно очистить временную таблицу и сравнить все записи с false в поле2 с записями true в поле2 (поскольку записей много то такую проверку запускать на ночь) найденные совпадения выгрузить во временную таблицу и автоматом проставить true поле1(т.е. получится что непроверенная оператором запись но проверенная функцией будет иметь значение в полях True False - попадет в часть2)
Далее проверить записи в блоке True False (ведь за рабочий день могли тоже дубликатов набить) - данные внести во временную таблицу (т.е. каждую запись в блоке проверить на совпадение с записями в блоке свою запись в расчет не брать)
Теперь очередь оператора просмотреть записи false в поле2 и true в поле1(находящиеся в части2) и записи во временной таблице
если запись должна быть сохранена то в поле2 false меняем на true, а если дубликат то удаляем
если во время проверки будут внесены дополнительные записи то проверяющий юзер их не увидит т.к. оба поля False False (попадет в часть3)
в любом случае юзеру нужно показывать дополнительные сведения для принятия правильного решения (ну и что с того что Вы верифицируете данные только по ФИО и ДатеРождения - решение все равно принимать ему)
и еще - не рекомендую всю базу сразу проверять на совпадения - лучше кусочками (например добавить еще одно поле типа boolean и если True то с этими данными проводить проверку - со временем когда база вся будет проверена надобность в этом поле отпадет и его можно будет удалить) в противном случае возможен резкий скачек объема базы из-за временной таблицы