Para resolver a primeira parte da sua pergunta, crie um índice exclusivo em user_id e name.
alter table `users` add unique index ak_user_id_name(user_id,name);
Isso evitará registros duplicados de user_id,name.
alter table `users` add unique index ak_user_id_name(user_id,name);