sql >> Database >  >> RDS >> Mysql

Wat is de beste tekenset voor het e-mailveld?

Een e-mailadres is een stukje tekst. Gebruik daarom geen binair , gebruik tekst.

Utf8 lijkt me een goede keuze. Ik weet niet zeker welke tekens worden ondersteund voor e-mailadressen, maar je kunt verwachten dat er in de toekomst steeds meer unicode-tekens zullen worden toegestaan. Vooral als u utf8 elders in uw database gebruikt, hoeft u niet van de ene codering naar de andere over te schakelen, maar gebruik utf8 voor alles.

Wat betreft het kiezen tussen utf8_bin , utf8_unicode_ci en utf8_general_ci , het verschil is alleen de sortering. Dit betekent dat het een verschil maakt bij het vergelijken van de snaren.

Nu moet je hier kiezen tussen wat mag en wat normaal is. Normaal gesproken zijn e-mailadressen niet hoofdlettergevoelig, maar ze kunnen hoofdlettergevoelig zijn.

Dus als u een unieke index in uw e-mailkolom gebruikt en u wilt toestaan ​​dat e-mailadressen alleen verschillen in hoofdlettergebruik, moet u utf8_bin gebruiken , aangezien sorteringen die eindigen op _ci "hoofdlettergevoelig" betekenen.

Als u een unieke index gebruikt en u wilt voorkomen dat e-mails alleen verschillen in hoofdlettergebruik, gebruik dan utf8_unicode_ci .

Dat gezegd hebbende, gebruik ik utf8_unicode_ci . Ik wil dat de database [email protected] kan herkennen en [email protected] als hetzelfde adres. Het is veel nuttiger dan de mogelijkheid toe te staan ​​van adressen met dezelfde karakters en verschillende hoofdletters.




  1. SQL*Plus hoe de tekstvariabele van de prompt te accepteren?

  2. Wanneer moet ik een cursor en db sluiten?

  3. SQL transponeren volledige tabel

  4. converteer mysql-resultaat naar json met de juiste typen