Jauh terlambat ke posting ini, tapi aku punya sesuatu yang sedikit berbeda untuk dikatakan ...
>> "Are email addresses case sensitive?"
Baiklah, "Itu Tergantung ..." (TM)
Beberapa organisasi sebenarnya berpikir itu adalah ide yang bagus dan server email mereka memberlakukan sensitivitas kasus.
Jadi, untuk tempat-tempat gila itu, "Ya, Email sensitif terhadap huruf besar-kecil."
Catatan: Hanya karena spesifikasi mengatakan Anda dapat melakukan sesuatu tidak berarti itu ide yang baik untuk melakukannya.
Prinsip KISS menunjukkan bahwa sistem kami menggunakan email yang tidak sensitif terhadap huruf besar-kecil.
Sedangkan prinsip Robustness menyarankan agar kami menerima email sensitif huruf.
Larutan:
- Simpan email dengan sensitivitas case
- Kirim email dengan sensitivitas case
- Lakukan pencarian internal dengan ketidakpekaan huruf
Ini berarti bahwa jika email ini sudah ada: user@x.com
... dan pengguna lain datang dan ingin menggunakan email ini: USER@x.com
... bahwa logika pencarian case-sensitive kami akan mengembalikan pesan kesalahan "Bahwa email sudah ada".
Sekarang, Anda harus membuat keputusan: Apakah solusi itu memadai untuk kasus Anda?
Jika tidak, Anda dapat membebankan biaya kenyamanan kepada klien yang meminta dukungan untuk email case sensitif mereka dan menerapkan logika khusus yang memungkinkan USER@x.com ke dalam sistem Anda, bahkan jika user@x.com sudah ada.
Dalam hal ini logika pencarian / validasi email Anda mungkin terlihat seperti sesuatu pseudocode ini:
if (user.paidEmailFee) {
// case sensitive email
query = "select * from users where email LIKE ' + user.email + '"
} else {
// case insensitive email
query = "select * from users where email ILIKE ' + user.email + '"
}
Dengan cara ini, Anda sebagian besar menegakkan kepekaan kasus tetapi memungkinkan pelanggan membayar untuk dukungan ini jika mereka menggunakan sistem email yang mendukung omong kosong seperti itu.
ps ILIKE adalah kata kunci PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html