Bene, prima di tutto, avrai molte domande perché ti aspetti che l'applicazione faccia un sacco di cose.
I database hanno un paio di cose che possono aiutare, ma puoi peggiorare le cose usandoli male.
Gli ORM sono uno strumento che ti aiuterà a scrivere le query per te. Ma avrai ancora molte domande se hai un sacco di lavoro nel database che deve essere fatto.
Successivamente, puoi usare Views per creare alcune delle cose principali che vorrai usare più volte. Le viste sono utili per le cose complesse che è necessario assicurarsi di avere gli stessi calcoli in più situazioni. Ad esempio, abbiamo delle opinioni che raccolgono tutti i dati da varie tabelle per i dati finanziari che garantiscono che tutti i dati finanziari siano basati sullo stesso insieme di business logic. Tuttavia, non utilizzare le viste per le viste delle chiamate.
Puoi utilizzare le stored procedure e quindi chiamarle in più punti. (Assicurati di averli messi nel controllo del codice, però, gli SP sono codice!)
Tuttavia, potresti dover imparare a convivere con il fatto che ci sia un sacco di codice. Il nostro database ha oltre un migliaio di stored procedure. Organizzarli per schema ha aiutato. Se il tuo database non ha schemi, aiuta l'organizzazione usando una convenzione di denominazione sistematica. In questo modo, tu sai che tutte le cose che riguardano la finanza hanno la parola finanza in esse e quelle relative agli utenti hanno utenti in esse. Questo ti aiuta a trovare quello che stai cercando quando è necessario riutilizzarlo.
Il riutilizzo del codice può essere una cosa meravigliosa, ma c'è un avvertimento molto strong quando si interrogano i database. Se le query sono leggermente diverse, allora devono essere due query separate anziché una che invia più dati di quelli richiesti dall'applicazione in quel momento. L'aggiunta di campi che non hai bisogno di interrogare per poterli utilizzare altrove può causare problemi di prestazioni orribili che sono molto difficili per correggere (ho appena trascorso diversi giorni a provare a mettere a punto un tale casino e ho finito per eliminare oltre 400 righe di SQL non necessario! Ho anche migliorato le prestazioni riducendo il tempo di esecuzione di oltre il 60%). Quindi non seguire questa strada solo per avere meno domande. Le query più specifiche sono generalmente migliori di quelle generali per le prestazioni del database.