Struttura del database per collegamenti tra oggetti della stessa classe

0

Ho visto altrove che è un bel progetto implementare collegamenti tra oggetti in un database come oggetto separato. Questo rende un modo pulito per avere più oggetti di una classe per essere collegati a un oggetto di un'altra classe, invece di aggiungere una proprietà "links" a un oggetto, che quindi viene popolata, ad esempio un elenco CSV di altri oggetti che sono collegato.

Ora voglio passare attraverso la mia raccolta musicale (MP3) e trovare versioni codificate in modo diverso della stessa registrazione (tramite fingerprinting audio - pensate alla stessa canzone squarciata due volte con un bit rate diverso, ad esempio). Ora non sono sicuro di come progettare gli oggetti di collegamento, poiché collegano oggetti della stessa classe. Potrei fare qualcosa come

id songA songB

ma poi se voglio cercare tutte le corrispondenze per una canzone particolare, dovrò passare attraverso sia la songA che la songB per trovare i possibili collegamenti. C'è un modo più intelligente per farlo?

    
posta Isaac 06.02.2015 - 16:56
fonte

1 risposta

2

Questo non richiede un'entità di collegamento (sebbene siano molto utili per le relazioni N: M e infinitamente migliori di provare a racchiudere un elenco di cose in un singolo campo o in più campi!).

Quello che vuoi è un'entità SONG che può essere referenziata da più entità RECORDING. Un SONG ha un titolo, un artista, ecc., Mentre un RECORDING può avere un bit rate, un volume, una data di file ecc. Il RECORDING avrebbe una singola chiave esterna per la tabella SONG. È così che esprimi le associazioni N: 1.

    
risposta data 06.02.2015 - 17:01
fonte

Leggi altre domande sui tag