Sono un principiante nei database. Ho letto in giro e ho scoperto che probabilmente non è una buona idea usare l'indirizzo e-mail come chiave primaria perché i confronti di stringhe sono più lenti che influiscono sulle prestazioni in join complessi e se un'e-mail cambia dovrei cambiare tutte le chiavi esterne che richiedono molto di sforzo.
Ma se la tabella dei miei utenti richiede che tutti gli utenti dispongano di un indirizzo e-mail e ciascuno di essi sia univoco, sarà sufficiente aggiungere un indice univoco nella colonna e-mail? Perché i campi univoci di afaik consentono valori null, mentre richiedo a tutti gli utenti di avere un indirizzo e-mail, non consentendo valori null. C'è qualcosa che mi manca qui? Oppure suppongo di rendere unica la colonna e-mail e di accertarmi durante la convalida dei dati sul server che l'utente inserisca un indirizzo e-mail in modo che ogni utente ne abbia uno?