Domanda

Mi è stato detto da un amico:

  

Quale chiave univoca usi? spero che tu   non stanno salvando l'intero nome utente   --- questo utilizzerà troppo spazio sul tavolo! Assegnare un ID utente univoco a ciascuno   (unico) userNAME e salva questo ID utente   (dovrebbe essere INTEGER UNSIGNED   auto_increment o BIGINT UNSIGNED   Incremento automatico). Non dimenticare di   creare un riferimento

     

RIFERIMENTI CHIAVE ESTERO ( userID )    usertable ( userID ) in tutte le tabelle   utilizzando l'ID utente.

L'istruzione precedente è corretta? Perché o perché no?

È stato utile?

Soluzione

Penso che abbia ragione (per la ragione sbagliata) perché la chiave primaria non può cambiare, ma username può cambiare. Quindi dovresti usare userid perché non cambierebbe.

Altri suggerimenti

Ha ragione per le ragioni sbagliate. Il tablespace è secondario al fatto che la tua app potrebbe in seguito imporre che i nomi utente possano essere modificati o addirittura smettere di essere univoci (potresti immaginare un'applicazione in cui non sono richiesti nomi utente univoci, come Stack Overflow) e quindi la tua app avrebbe bisogno di importanti refactoring e migrazione dei dati invece di un leggero cambiamento nell'altro caso (intero PK).

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