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

Hvad er det bedste tegnsæt til e-mail-feltet?

En e-mailadresse er et stykke tekst. Derfor brug ikke binær , brug tekst.

Utf8 synes at være et godt valg. Jeg er ikke sikker på, hvilke tegn der understøttes for e-mailadresser, men man kan forvente, at der i fremtiden vil være flere unicode-tegn tilladt. Især hvis du bruger utf8 andre steder i din database, behøver du ikke skifte fra en kodning til en anden, bare brug utf8 til alt.

Med hensyn til at vælge mellem utf8_bin , utf8_unicode_ci og utf8_general_ci , forskellen er kun sammenstillingen. Det betyder, at det gør en forskel, når man sammenligner strengene.

Nu skal du her vælge mellem hvad der er tilladt og hvad der er normalt. Normalt skelner der mellem store og små bogstaver i e-mail-adresser, men de kan skelne mellem store og små bogstaver.

Så hvis du bruger et unikt indeks på din e-mail-kolonne og vil tillade, at e-mailadresser kun afviger i deres store bogstaver, bør du bruge utf8_bin , da sammenstillinger, der ender med _ci, betyder "uafhængig af store og små bogstaver".

Hvis du bruger et unikt indeks og ønsker at undgå, at e-mails kun afviger i deres store bogstaver, så brug utf8_unicode_ci .

Når det er sagt, bruger jeg utf8_unicode_ci . Jeg vil have, at db'en skal kunne genkende [email protected] og [email protected] som samme adresse. Det er meget mere nyttigt end at tillade muligheden for adresser med samme tegn og forskellige store bogstaver.




  1. FEJL 1349 (HY000):Views SELECT indeholder en underforespørgsel i FROM-sætningen

  2. "Er det hemmeligt? Er det sikkert?" Håndtering af følsomme data i din datamodellering

  3. Hvordan kan jeg læse data fra en krypteret DB ved hjælp af SQLiteAssetHelper?

  4. PHP &MySQL:mysqli_num_rows() forventer, at parameter 1 er mysqli_result, boolean givet