Il mio database non è strutturato, la finestra delle relazioni è una vera e propria ragnatela, però tutto funziona a meraviglia.
Ogni tanto penso all'idea di smembrarlo e strutturarlo, ma non saprei da dove cominciare. Per essere più concreto, il database si chiama "Archivio Cultura" e raccoglie tutto insieme principalmente musica, video (film) e libri (anche raccolte d'arte ma in misura minore). Ecco alcune tabelle che sono la spina dorsale del mio database:
ARTISTI
IDArtista
Cognome Nome
TITOLI
IDTitolo
Titolo
altri campi non importanti per ora
AUTORI-TITOLI
IDAT
IDAutore
IDTitolo
SUPPORTI
IDSupporto
Supporto
Tipo (es. CD, DVD, Libro, VHS...)
altri campi minori
TITOLI-SUPPORTI
IDTitSupp
IDTitolo
IDSupporto
Indirizzo (come per dire traccia 1, traccia 2, pag.66.....cioè l'indirizzo del Titolo all'interno del Supporto)
altri campi minori
INTERPRETI-(TITOLI-SUPPORTI)
IDITS
IDInterprete
IDTitSupp
Cerchiamo di venire al bandolo della matassa.
Ovviamente ogni ID in testa a ogni tabella è Contatore chiave primaria, tutti gli altri campi non ID sono Testo.
IDAutore è in realtà un IDArtista che nella tabella AUTORI-TITOLI svolge la funzione di Autore.
IDInterprete è un IDArtista che nella tabella INTERPRETI-(TITOLI-SUPPORTI) svolge la funzione di Interprete.
Ci sono casi in cui Artisti sono sia Autori che Interpreti, altri che sono Autori ma non Interpreti, altri che sono Interpreti ma non Autori, tutti caso per caso, tabella-di-congiunzione per tabella-di-congiunzione. Non so se è importante, ma non esistono Artisti che non sono nè Autore nè Interprete.
Spero sia tutto chiaro, ma si dà il caso che dalla tabella ARTISTI partano due linee di relazione:
ARTISTI.IDArtista uno-a-molti con AUTORI-TITOLI.IDAutore
ARTISTI.IDArtista uno-a-molti con INTERPRETI-(TITOLI-SUPPORTI).IDInterprete
Altre relazioni sono:
TITOLI molti-a-molti con SUPPORTI
sì, perchè è vero che un Supporto contiene molti Titoli, ma è anche vero che uno stesso Titolo può stare in molti Supporti (es. una canzone di Claudio Baglioni sta sia nel suo album originale, quanto in una compilation...).
Da qui TITOLI-SUPPORTI aggancio gli Interpreti per ogni Titolo, ecco il significato della tabella INTERPRETI-(TITOLI-SUPPORTI)
Ripeto, già questo schema non è strutturato. Come posso farlo?
Si dà il caso che non avrei intenzione di creare 2 tabelle AUTORI e INTERPRETI, poichè hanno gli stessi campi. Una volta avevo tentato di ricopiare ARTISTI in due query (con analoghi campi) AUTORI e INTERPRETI, ma la finestra delle relazioni non accetta l'intrusione di query.
Quale prassi ortodossa dovrei applicare per rendere, almento questa parte, strutturata?