Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der beste Zeichensatz für das E-Mail-Feld?

Eine E-Mail-Adresse ist ein Stück Text. Verwenden Sie daher keine Binärdateien , verwenden Sie Text.

Utf8 scheint eine gute Wahl zu sein. Ich bin mir nicht sicher, welche Zeichen für E-Mail-Adressen unterstützt werden, aber man kann davon ausgehen, dass in Zukunft immer mehr Unicode-Zeichen erlaubt sein werden. Insbesondere wenn Sie utf8 an anderer Stelle in Ihrer Datenbank verwenden, müssen Sie nicht von einer Kodierung zu einer anderen wechseln, verwenden Sie einfach utf8 für alles.

Zur Auswahl zwischen utf8_bin , utf8_unicode_ci und utf8_general_ci , der Unterschied besteht nur in der Sortierung. Das bedeutet, dass es beim Vergleich der Zeichenfolgen einen Unterschied macht.

Hier muss man sich nun zwischen dem Erlaubten und dem Normalen entscheiden. Normalerweise wird bei E-Mail-Adressen die Groß-/Kleinschreibung nicht beachtet, aber es kann sein, dass die Groß-/Kleinschreibung beachtet wird.

Wenn Sie also einen eindeutigen Index für Ihre E-Mail-Spalte verwenden und E-Mail-Adressen zulassen möchten, die sich nur in ihrer Großschreibung unterscheiden, sollten Sie utf8_bin verwenden , da Kollatierungen, die mit _ci enden, "Groß- und Kleinschreibung beachten" bedeuten.

Wenn Sie einen eindeutigen Index verwenden und vermeiden möchten, dass sich E-Mails nur in ihrer Groß- und Kleinschreibung unterscheiden, verwenden Sie utf8_unicode_ci .

Davon abgesehen verwende ich utf8_unicode_ci . Ich möchte, dass die Datenbank [email protected] erkennen kann und [email protected] als gleiche Adresse. Es ist viel nützlicher, als die Möglichkeit von Adressen mit denselben Zeichen und unterschiedlicher Großschreibung zuzulassen.