Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è il miglior set di caratteri per il campo e-mail?

Un indirizzo e-mail è un pezzo di testo. Pertanto, non utilizzare binario , usa il testo.

Utf8 sembra essere una buona scelta. Non sono sicuro di quali caratteri siano supportati per gli indirizzi e-mail, ma ci si può aspettare che in futuro saranno consentiti sempre più caratteri Unicode. Soprattutto se usi utf8 altrove nel tuo database, non devi passare da una codifica all'altra, usa semplicemente utf8 per tutto.

Per quanto riguarda la scelta tra utf8_bin , utf8_unicode_ci e utf8_general_ci , la differenza è solo la confronto. Ciò significa che fa la differenza quando si confrontano le stringhe.

Ora qui devi scegliere tra ciò che è consentito e ciò che è normale. Normalmente, gli indirizzi email non fanno distinzione tra maiuscole e minuscole, ma potrebbero fare distinzione tra maiuscole e minuscole.

Pertanto, se utilizzi un indice univoco nella colonna e-mail e desideri consentire indirizzi e-mail che differiscono solo per le maiuscole, dovresti utilizzare utf8_bin , poiché le regole di confronto che terminano con _ci significano "senza distinzione tra maiuscole e minuscole".

Se utilizzi un indice univoco e desideri evitare che le email differiscano solo per la maiuscola, utilizza utf8_unicode_ci .

Detto questo, io uso utf8_unicode_ci . Voglio che il db sia in grado di riconoscere [email protected] e [email protected] come lo stesso indirizzo. È molto più utile che consentire la possibilità di indirizzi con gli stessi caratteri e lettere maiuscole diverse.