Есть вариант, создать дополнительное поле, VARCHAR(32)
В триггере вычислять MD5 нужных полей md5(Вася + null + E-Mail)
А это самое поле, сделать уникальным.
У вас физически не получится вставить дубль.
Но есть проблема.
Две Маши вы тоже не добавите, если у них нет Email, Phone
Программа работает верно, вася+ null в телефоне, а затем в почте не будет отрабатывать, тк вася + null будет повторять у вас ключ. А чем вам не нравится вариант по 3 м полям?