Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Qual è il modo migliore per implementare l'associazione polimorfica in SQL Server?

I due approcci più comuni sono Table Per Class (cioè una tabella per la classe base e un'altra tabella per ogni sottoclasse che contiene le colonne aggiuntive necessarie per descrivere la sottoclasse) e Table Per Hierarchy (cioè tutte le colonne di una tabella, con una o più colonne per consentire la discriminazione delle sottoclassi. Qual è l'approccio migliore dipende davvero dai dettagli della tua applicazione e dalla strategia di accesso ai dati.

Avresti Table Per Class nel tuo primo esempio invertendo la direzione dell'FK e rimuovendo gli ID extra dal genitore. Le altre due sono essenzialmente varianti di tabella per classe.