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

Progettazione di un database:qual è l'approccio migliore?

Questa è una tipica tabella stretta (basata sugli attributi) rispetto a una discussione ampia. Il problema con l'approccio n. 2 è che probabilmente dovrai ruotare i dati, per inserirli in un modulo con cui l'utente può lavorare (di nuovo in un formato di visualizzazione ampia). Questo può essere molto dispendioso in termini di risorse all'aumentare del numero di righe e all'aumentare del numero di attributi. È anche difficile guardare la tabella, nella visualizzazione tabella grezza, e vedere cosa sta succedendo.

Abbiamo avuto questa discussione molte volte nella nostra azienda. Abbiamo alcune tabelle che si prestano molto bene a uno schema del tipo di attributo. Abbiamo sempre deciso di non farlo a causa della necessità di ruotare i dati e dell'impossibilità di visualizzare i dati e di avere un senso (ma questo è il locatore dei due problemi per noi:semplicemente non vogliamo ruotare milioni di righe di dati).

A proposito, non memorizzerei l'età come numero. Conserverei la data di nascita, se ce l'hai. Inoltre, non so a cosa si riferisca "Madrelingua", ma, se è la lingua parlata dalla madre, lo memorizzerei come FK in una tabella delle lingue principali. È più efficiente e riduce il problema dei dati errati a causa di un linguaggio errato.