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 GenreIn 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

È stato utile?

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).

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