Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaki jest najlepszy zestaw znaków dla pola e-mail?

Adres e-mail to fragment tekstu. Dlatego nie używaj binarnych , użyj tekstu.

Utf8 wydaje się być dobrym wyborem. Nie jestem pewien, jakie znaki są obsługiwane w adresach e-mail, ale można się spodziewać, że w przyszłości będzie coraz więcej dozwolonych znaków Unicode. Zwłaszcza jeśli używasz utf8 w innym miejscu w swojej bazie danych, nie musisz przełączać się z jednego kodowania na inne, po prostu używaj utf8 do wszystkiego.

Jeśli chodzi o wybór między utf8_bin , utf8_unicode_ci i utf8_general_ci , różnica polega tylko na zestawieniu. Oznacza to, że ma to znaczenie przy porównywaniu ciągów.

Teraz musisz wybrać między tym, co jest dozwolone, a tym, co jest normalne. Zwykle w adresach e-mail nie jest rozróżniana wielkość liter, ale może być też rozróżniana wielkość liter.

Jeśli więc używasz unikalnego indeksu w kolumnie e-mail i chcesz zezwolić na adresy e-mail różniące się tylko wielkością liter, powinieneś użyć utf8_bin , ponieważ sortowanie kończące się na _ci oznacza „bez uwzględniania wielkości liter”.

Jeśli używasz unikalnego indeksu i chcesz uniknąć e-maili różniących się tylko wielkością liter, użyj utf8_unicode_ci .

Biorąc to pod uwagę, używam utf8_unicode_ci . Chcę, aby baza danych była w stanie rozpoznać [email protected] i [email protected] jako ten sam adres. Jest to o wiele bardziej przydatne niż umożliwienie adresów z tymi samymi znakami i różnymi wielkościami liter.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. system rozliczeń cyklicznych

  2. Analizuj i porównuj dane za pomocą Coldfusion i MySQL

  3. CURDATE() Przykłady – MySQL

  4. python mysqldb err na moim Macu:Biblioteka nie została załadowana:@rpath/libmysqlclient.21.dylib

  5. Odmowa dostępu dla użytkownika 'root'@'localhost' (przy użyciu hasła:TAK) - Brak uprawnień?