Da quando esistono i DATABASE esistono delle regole per l'ottimizzazione delle base dati.
in sintesi:
occorre definire DUE tipi di informazioni:
Informazioni che devono essere "Storicizzate" cioè che restano invariate nel tempo
e informazioni che invece possono cambiare
esempio correlato al tuo database:
abbiamo gli OSPEDALI e le DEGENZE
ora una degenza è abbinata un ospedale
se scelgo l'ospedale vedo le degenze di quell'ospedale e posso sceglierne una.
Se però, in seguito, qualcuno dovesse cambiare l'ospedale ... scegliendone un'altro ...
la degenza inserita non sarebbe più correlata all'ospedale modificato generando una base dati non congrua.
Occorre quindi Analizzare la base dati, definirne l'uso e le applicazioni
definire con precisione quali informazioni siano necessarie e come le varie tabelle debbano interagire
E' il lavoro che svolge l'Analista programmatore
mentre il programmatore applica l'arte della programmazione alla base dati in base all'analisi.
Vedi la BIBBIA dello sviluppo software "Algoritmi + Strutture Dati= Programmi" di Niklaus Wirth (l'inventore del linguaggio Pascal)
pubblicaato nel 1976
Inoltre Microsoft fornisce da sempre "Nozioni Fondamentali sulla progettazione di database"
vedi: https://support.office.com/it-it/article/Nozioni-fondamentali-sulla-progettazione-di-database-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5
Come ho scritto, scusandomi per la battuta che vuole solo essere spiritosa ... "Medici, avvocati e calzolai si dilettano di programmazione e del resto anch'io che di lavoro sviluppo sofware mi diletto a curare pazienti, difendere imputati e riparare scarpe"
Questo per dire che, pur apprezzando chi si interessa amatorialmente di programmazione e gestione dati,
se la gestione dei dati è importante e si desidera ottenere i risultati che ci si attende ... è meglio rivolgersi ai professionisti.
Con simpatia, cordiali saluti