Как правильно построить логику приложения?
Найти параметры неуникальности, то есть определить что такое дубликат.
По этим параметрам либо создать хеш и хранить его отдельным полем в таблице, либо, если это 1 поле, проверять уникальность по нему. 
Ставим на поле с хэшем уник, при добавлении делаем инсерт он дупликэйт игнор. 
Все.
Найти параметры неуникальности, то есть определить что такое дубликат.
По этим параметрам либо создать хеш и хранить его отдельным полем в таблице, либо, если это 1 поле, проверять уникальность по нему. 
Ставим на поле с хэшем уник, при добавлении делаем инсерт он дупликэйт игнор. 
Все.