Una dirección de correo electrónico es un fragmento de texto. Por lo tanto, no utilice binario , usa texto.
En cuanto a elegir entre utf8_bin , utf8_unicode_ci y utf8_general_ci , la diferencia es solo la intercalación. Esto significa que marca la diferencia al comparar las cadenas.
Ahora aquí tienes que elegir entre lo que está permitido y lo que es normal. Normalmente, las direcciones de correo electrónico no distinguen entre mayúsculas y minúsculas, pero podrían distinguir entre mayúsculas y minúsculas.
Por lo tanto, si usa un índice único en su columna de correo electrónico y desea permitir que las direcciones de correo electrónico difieran solo en el uso de mayúsculas, debe usar utf8_bin , ya que las intercalaciones que terminan con _ci significan que "no distingue entre mayúsculas y minúsculas".
Si usa un índice único y desea evitar que los correos electrónicos difieran solo en mayúsculas, use utf8_unicode_ci .
Dicho esto, uso utf8_unicode_ci . Quiero que la base de datos pueda reconocer [email protected] y [email protected] como la misma dirección. Es mucho más útil que permitir la posibilidad de direcciones con los mismos caracteres y mayúsculas diferentes.