Ciao, Salve a tutti
Purtroppo non è un database quello che stai realizzando, la strada intrapresa come avrai capito, non è corretta, infatti già riscontri alcuni problemi come hanno ben segnalato appena sopra.
Le informazioni da archiviare nelle tabelle del database si devono sviluppare in Verticale e non in Orizzontale come stai cercando di fare.
Le tabelle di un database devono contenere una sequenza di dati, records, uno dietro l’altro e non accanto all’altro.
Invece i dati estratti dalle tabelle possono essere rappresentati anche in Orizzontali, affiancando nel tuo caso i dati relativi agli aggregati per anno.
Le tabelle di un database devono essere necessariamente indicizzate e là dove opportuno, con chiavi univoche oppure no.
Le tabelle per essere Relazionate, da qui si usa dire “Database Relazionale”, devono sempre avere una chiave univoca Primaria. Questo consente di avere l’Integrità e l’univocità dell’informazioni in esse archiviate.
Come prima cosa devi Immaginare, ancor prima di procede, come dovranno essere relazionate le tabelle e quanti e quali saranno necessarie per la realizzazione del progetto.
In pratica; poniamo il caso del Tipo Aggregati
Queste informazioni “Descrittive” non devono essere presenti in ogni tabella per Anno Società etc… ma devono essere collocate in una tabella da relazionare a quella Società per quell’Anno e così via dicendo.
Un esempio ancor più pratico per quanto appena detto:
supponi di avere una Tabella denominata Tbl_Aggregati la quale conterrà i records relativi a:
- Anno
- Società
- Tipo Aggregati
- Valore Aggregati
In questo caso, fatto eccezione per il campo Valore Aggregati, tutte le altre informazioni devono essere reperite da enne tabelle… Tabella Anni, Tabella Società e Tabella Tipo Aggregati.
Queste tabelle verranno relazionate alla tabella Tbl_Aggregati.
Un piccolo esempio:
Se per queste tabelle andiamo ad inserire i dati e li visualizziamo in una Query (Ho messo due Società una Nonna Papera e l’altra Paperon de Paperoni per alcuni anni di esercizi)
Come puoi vedere i dati sono tutti in verticale, un record sotto l’altro… questo consentirà di Filtrare gli Anni che ci interessano, le Società etc… e in una Form li possiamo organizzare come meglio dovranno essere analizzati.
Aprendo la Tabella Società si può notare come le Relazioni, in questo caso 1 a molti, vengono utilizzate automaticamente dal Database per dare accesso a tutti i records relazionati per codice ID chiavi Primarie.
Pertanto non si devono portare dietro tutti i campi descrittivi in tutte le tabelle in modo ridondante e pesante, ma solo i campi chiave ad essi associate:
Anche quando si va a creare una Query, quando si includono le tabella, ritroviamo le relazioni già presenti tra tutte le Tabelle e si hanno a disposizione tutte le informazioni disponibili:
Adesso poniamo di voler visualizzare per La società Paperon de Paperoni, per l’anno in corso e i due anni precedenti, i Valori relativi agli Aggregati Fatturato/Costi/Ricavi/Etc…
Un piccolo esempio (anche bruttino ;) ) e niente di più… solo per darti un idea di come pensare e strutturare il tuo Database
P.S. tieni conto che c’è voluto più a scrivere il post che per realizzare il Db, 30 minuti circa per costruire le Tabelle/Relazioni/Form etc.. ;)) spero ti possa tornare utile per approfondire come organizzare il tuo Database, soprattutto sulla base dei suggerimenti che ti hanno già fornito e ben spiegato gli altri.
Ciao