Domanda

Lo so chiavi primarie surrogate sono generalmente raccomandate le chiavi primarie naturali, ma ci sono argomenti a favore di chiavi primarie surrogate quando si tratta di nomi utente?

È stato utile?

Soluzione

Se non si desidera ottenere nomi utente duplicati, creare un UNIQUE constraint .

E se DWong1145 vuole cambiare di nome utente? Volete fare tutte le relazioni di database da UPDATE CASCADE?

Altri suggerimenti

No , si dovrebbe Usa nome utente solo come una chiave univoca / costante . Nome utente può essere cambiato, solo ed esempio:. Può essere un marchio di fabbrica e il proprietario si chiede di cadere

E 'un buon candidato in un certo senso, tuttavia bisogna prendere in considerazione se si vuole veramente farlo. Per esempio, si dispone di un utente con un certo nome utente, quindi l'utente viene "cancellato" (o contrassegnato come eliminato). Quindi, v'è in realtà alcuna ragione per non permettere di creare un altro utente con lo stesso nome utente, ma è già "preso", dal momento che è una chiave primaria.

Dal punto di vista del cliente, si scommette. Io non voglio che il mio nome utente per essere DWong1145.

Un grande svantaggio di avere una stringa come chiave primaria, indipendentemente dal fatto che si tratta di un nome utente o qualcos'altro, è che tutte le colonne chiave esterna che fa riferimento alla tabella dovranno anche essere stringhe, che è sia lo spazio più lento e più rifiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top