Mysql
 sql >> Database >  >> RDS >> Mysql

Progettazione del database:1 tabella o 2?

La differenza tra i due modelli è principalmente una di flessibilità. Se l'account e i dati utente condividono un'unica tabella, ogni utente deve avere un account e ogni account può avere un solo utente (a meno che tu non aggiunga un'altra tabella per consentire l'aggiunta di utenti figlio oltre all'utente che vive con l'account dati o a meno che non si aggiungano nuovi record con dettagli di account duplicati in ciascuno, il che è molto negativo e antitetico a ciò che dovrebbero fare i database).

Con due tabelle, puoi facilmente avere più utenti in ogni account e potresti anche scegliere di consentire circostanze in cui un account non ha utenti o in cui un utente non ha un account, se ciò avvantaggia il tuo caso d'uso.

Il compromesso è che se vuoi fare qualcosa come determinare l'account per un utente (o gli utenti in un account), devi fare un join se stai usando due tabelle. Se hai una tabella, tutto ciò che devi fare è recuperare la riga per ottenere queste informazioni.