Il design è sulla terza forma normale?
-
12-11-2019 - |
Domanda
Ho una tabella che ha una categoria di attributi. Ad esempio una tabella in cui salvo brani che hanno un genere di attributi:
Songs(
ID (INT),
Name (STRING),
Genre: (STRING)
)
La tabella è in terza forma normale?
Voglio dire, so che è meglio salvare il Genre
In un'altra tabella e hanno una relazione tra tavoli come:
Songs(
ID (INT),
Name (STRING),
Genre_ID: (INT)
)
Genre(
ID (INT),
Name (String)
)
dove Songs.Genre_ID = Genre.ID
.
Ma non riesco a determinare se il primo caso (con una tabella) viola qualsiasi regola della terza forma normale!
Lo fa? Se sì, quale?
Grazie, Mike
Soluzione
Quali sono le chiavi? Quali dipendenze dovrebbe soddisfare il tavolo? Queste sono le cose che dobbiamo sapere per rispondere alla tua domanda.
La mia ipotesi è che l'ID sia l'unica chiave e quell'id-> {nome, genere} e che non ci sono altre dipendenze non banali e non chiave. Se è corretto, allora le canzoni sono in 3NF. Ancora più importante è in BCNF e 5NF.
Sostituire il genere degli attributi stringa con un genere intero_id non ha assolutamente nulla a che fare con qualsiasi forma normale.
Altri suggerimenti
Ripeti dopo di me.
"I numeri ID non hanno nulla a che fare con la normalizzazione. I numeri ID non hanno nulla a che fare con la normalizzazione. I numeri ID non hanno nulla a che fare con la normalizzazione."
Se il tuo obiettivo è archiviare un genere per nome della canzone, allora questa tabella
song_name genre
--
Toxic Pop
Itsy Bitsy Spider Children's
dove song_name è la chiave principale, è in 5nf. (E 4nf e 3nf e così via).