Cos’è davvero "case‑insensitive"?
In pratica, si tratta di ignorare la differenza tra maiuscole e minuscole quando si confrontano stringhe. Semplice, ma potente.
Perché conta nei database
Nella vita reale le persone digitano in modo diverso: "Mario", "mario" o addirittura "MARIO". Se il tuo DB li tratta come valori distinti, rischi duplicati e confusione.
Immagina un sistema di login che accetta solo la versione esatta del nome utente. Un piccolo errore di maiuscola può bloccare l’accesso a chi è già registrato.
Come attivare la modalità case‑insensitive
- SQL Server: usa COLLATE Latin1_General_CI_AS nella definizione della colonna o nella query.
- MySQL: imposta lower_case_table_names=1 e utilizza COLLATE utf8_general_ci.
- crea un indice con LOWER(colonna) o sfrutta la collation en_US.utf8.
Ogni sistema ha le sue peculiarità, ma l’obiettivo rimane lo stesso: trattare "Mario" e "mario" come identici.
Quando evitare il case‑insensitive
Ci sono casi d’uso dove la distinzione è cruciale. Password, codici di prodotto univoci o nomi che includono numeri e simboli possono richiedere una sensibilità alla casse per garantire l’unicità.
In questi scenari, la soluzione più semplice è mantenere il case‑sensitive e aggiungere controlli a livello applicativo.