E-mailová adresa je kus textu. Proto nepoužívejte binární , použijte text.
Utf8 se zdá být dobrou volbou. Nejsem si jistý, jaké znaky jsou podporovány pro e-mailové adresy, ale lze očekávat, že v budoucnu bude stále více povolených znaků unicode. Zejména pokud používáte utf8 jinde v databázi, nemusíte přecházet z jednoho kódování na druhé, stačí použít utf8 pro všechno.
Pokud jde o výběr mezi utf8_bin , utf8_unicode_ci a utf8_general_ci , rozdíl je pouze v řazení. To znamená, že je rozdíl při porovnávání řetězců.
Nyní si zde musíte vybrat mezi tím, co je povoleno a co je normální. Normálně se v e-mailových adresách nerozlišují malá a velká písmena, ale mohou rozlišovat malá a velká písmena.
Pokud tedy ve sloupci e-mailu používáte jedinečný index a chcete povolit e-mailové adresy, které se liší pouze velikostí písmen, měli byste použít utf8_bin , protože kolace končící na _ci znamenají „nerozlišují se malá a velká písmena“.
Pokud používáte jedinečný index a chcete se vyhnout tomu, aby se e-maily lišily pouze velikostí písmen, použijte utf8_unicode_ci .
Jak již bylo řečeno, používám utf8_unicode_ci . Chci, aby db dokázala rozpoznat [email protected] a [email protected] jako stejnou adresu. Je to mnohem užitečnější, než připouštět možnost adres se stejnými znaky a různými velkými písmeny.