Alamat email adalah sepotong teks. Oleh karena itu, jangan gunakan biner , gunakan teks.
Utf8 tampaknya menjadi pilihan yang baik. Saya tidak yakin karakter apa yang didukung untuk alamat email, tetapi orang dapat berharap bahwa akan semakin banyak karakter unicode yang diizinkan di masa mendatang. Terutama jika Anda menggunakan utf8 di tempat lain di database Anda, Anda tidak perlu beralih dari satu penyandian ke penyandian lainnya, cukup gunakan utf8 untuk semuanya.
Adapun memilih antara utf8_bin , utf8_unicode_ci dan utf8_general_ci , perbedaannya hanya pada susunannya. Ini berarti ada perbedaan saat membandingkan string.
Sekarang di sini Anda harus memilih antara apa yang diperbolehkan dan apa yang normal. Biasanya, alamat email peka huruf besar/kecil, tetapi bisa juga peka huruf besar/kecil.
Jadi, jika Anda menggunakan indeks unik pada kolom email Anda, dan ingin mengizinkan alamat email yang berbeda hanya dalam kapitalisasinya, Anda harus menggunakan utf8_bin , karena susunan yang diakhiri dengan _ci berarti "tidak peka huruf besar-kecil".
Jika Anda menggunakan indeks unik dan ingin menghindari email yang hanya berbeda kapitalisasinya, gunakan utf8_unicode_ci .
Karena itu, saya menggunakan utf8_unicode_ci . Saya ingin db dapat mengenali [email protected] dan [email protected] sebagai alamat yang sama. Ini jauh lebih berguna daripada memungkinkan kemungkinan alamat dengan karakter yang sama dan huruf besar yang berbeda.