sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es el mejor conjunto de caracteres para el campo de correo electrónico?

Una dirección de correo electrónico es un fragmento de texto. Por lo tanto, no utilice binario , usa texto.

Utf8 parece ser una buena elección. No estoy seguro de qué caracteres se admiten para las direcciones de correo electrónico, pero se puede esperar que en el futuro se permitan cada vez más caracteres Unicode. Especialmente si usa utf8 en otra parte de su base de datos, no tiene que cambiar de una codificación a otra, solo use utf8 para todo.

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.