Efficient workflow/queries to save unique information?
My solution of this would be use relation tables instead of merging ids, use uniqueness for tables phone number, email, and website etc. and insert with IGNORE command like

Insert ignore into emails values (5,a.a@a.com);



  If you use the IGNORE keyword, errors that occur while executing the
  INSERT statement are ignored. For example, without IGNORE, a row that
  duplicates an existing UNIQUE index or PRIMARY KEY value in the table
  causes a duplicate-key error and the statement is aborted. With
  IGNORE, the row is discarded and no error occurs. Ignored errors may
  generate warnings instead, although duplicate-key errors do not.


or if you want o update on duplicates, use Replace instead of Insert ignore


  REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.


This way you don't need to check for duplicates. If you want more complicated duplicate checks, you need o do it in the code, not in the database