Normalizzazione del database - bloccato con "categorie"

5

Contesto:
Sto lavorando a un database di musei e le categorie saranno un modo in cui l'utente sarà in grado di cercare. per esempio fai clic su "Musica" e viene visualizzato un elenco di musei correlati alla musica. Abbastanza semplice.

Problema:
Sono bloccato e confuso nel processo di normalizzazione della tabella "Categorie" ...

categories_PK IF è il punto di ingresso alla tabella delle righe ID, come faccio a fare riferimento alle categorie stesse? Come "Architettura" e "Case di architetti e scrittori di artisti" in una query? Sono confuso - Non vedo come verranno referenziati i valori?

Dato che un museo può rientrare in più di una categoria, l'unica altra idea che ho avuto è stata quella di inserire una chiave esterna in ogni categoria come Archaeology_PK? Ecco cosa ho ...

    
posta CallMePhilip 25.10.2014 - 19:06
fonte

2 risposte

8

Hai bisogno di due tabelle:

Categories
MuseumCategories

Sembreranno così:

Categories
    CategoryID   (Primary Key)
    CategoryName

MuseumCategories
    MuseumID     (Foreign Key)
    CategoryID   (Foreign Key)

La tabella MuseumCategories collega ogni categoria specificata a un museo. Ogni record nella tabella MuseumCategories collega una categoria a un museo. Puoi avere molti di questi record per lo stesso museo.

    
risposta data 25.10.2014 - 19:24
fonte
1

Qui è dove usi una tabella bridge, una tabella che esiste per collegare le tue due tabelle.

Quindi, hai una tabella MuseumCategory che ha almeno due colonne, Museuem e Category. Entrambe sono chiavi estranee alle rispettive tabelle.

Potresti desiderare di avere altre colonne, tali date attive o di inizio e fine, a seconda del sistema che potresti desiderare di ricevere informazioni di controllo (create da, data di creazione, approvata, qualsiasi altra cosa).

    
risposta data 25.10.2014 - 19:23
fonte

Leggi altre domande sui tag