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

Revisione dello schema di SQL Server

Questa è la classica domanda sul modello di ereditarietà delle tabelle e ci sono 3 soluzioni stabilite:

Ognuno ha pro e contro. Sei andato con l'ereditarietà della tabella delle classi, che è ciò che la maggior parte degli sviluppatori tende a fare naturalmente poiché segue il modello di progettazione del codice e sembra normalizzato. Ma ha le prestazioni peggiori, poiché richiede join frequenti, gli inserimenti e gli aggiornamenti sono costosi e l'applicazione dell'integrità dei dati è complessa. Preferisco di gran lunga il modello di ereditarietà tabella singola:una e una sola tabella, [Messages] , per la sua semplicità e le prestazioni di runtime nel pattern di accesso più frequente (es. mostra la mia 'inbox' è una query semplice e veloce). Ti consiglio di eseguire alcuni test con il modello proposto, sotto carico e con set di dati di dimensioni ragionevoli.