08/04/2024 - Noire ha scritto:
La tua disposizione delle maschere e sotto maschere sarebbe sì più facile e “pulita” ma poi mi sa mi incasinerei per capire i dati inseriti ??
Perché io uso la tabella Eventi già come fascicolo principale, che è poi suddiviso in sottofascicoli mediante la casella combinata.
Ciao,
vorrei darti un consiglio molto pratico, ed esprimere un concetto che è alla base di ogni progetto.
Magari risulterà un po’ lungo da spiegare, cercherò di essere più sintetico possibile ;-)
Facciamo degli esempi e per un attimo dimentica le form, le query e quant'altro.
Siedi alla tua scrivania ed esprimi un desiderio o la necessità di inquadrare tutte le informazioni di un dipendente insieme ad altri.
Adesso poniamo che tutte queste informazioni siano su supporto cartaceo.
Procediamo :
apri la cartella del dipendente e inizia a leggere le sue informazioni
Nome, Cognome, Data di Nascita, Luogo di Nascita, Residenza, Nazionalità, ecc… Queste Info le trovi in una unica pagina di un foglio e riesci ad avere un quadro completo anagrafico del dipendente.
Adesso vuoi vedere anche le Info formative del Dipendente… titoli di studio, attestati formativi, le lingue conosciute e a quale livello, ecc…
Per prendere visione di queste informazioni devi aprire un’altra cartelletta dove sono conservate tutti questi attestati.
Adesso vuoi vedere dal lato professionale le esperienze lavorative che ha avuto nel corso della sua vita. In quale periodo, dove e con quali mansioni ha svolto le sue esperienze, ecc…
Anche in questo caso hai un’altra cartelletta da aprire e da sfogliare dove trovi tutte le Info del caso.
Fermiamoci qui… hai la tua scrivania piena di fogli e devi consultare le informazioni di un altro dipendente. Poi di un altro e poi un altro ancora…
Adesso poniamo di voler raggruppare tutti i dipendenti per :
Titolo di studio. Devi ricercare tutti quelli che sono “Ingegneri”.
Hai anche la necessità di raggrupparli per tipo di professionalità ed esperienze nel settore “Civile”.
Nel settore ricercato devono aver “Maturato” un certo numero di anni di esperienza.
Non devono avere meno e più di una certa “Età”.
Possono essere di qualsiasi “Sesso”
Devono conoscere ad un certo livello le “Lingue”, l’Italiano, l’inglese e lo Spagnolo
Riepilogando stai cercando:
- un Ingegnere
- nel settore Civile
- che abbia Maturato un determinato periodo di esperienze
- di una certa Età
- di qualsiasi Sesso
- Lingue : Italiano, Inglese, Spagnolo… Livello Elevato (Scritto e Parlato)
Nella tua scrivania inizi a mettere in fila, da sinistra verso destra, separando i vari fogli estrapolati dalle varie cartellette, i vari nominativi che hanno tali caratteristiche.
Bene, adesso poniamoci la domanda di come informatizzare queste Informazioni e ripuliamo la scrivania da tutti questi fardelli e fogli.
Come e Dove Archiviare e come poter Raggruppare e Ricercare.
Iniziamo a progettare un Database che permetta di esaudire la tua esigenza.
Dovrai scomporre le Informazioni in Tabelle e Tabelle delle Tabelle per evitare la ridondanza delle informazioni e per poter incrociare le stesse in una qualsiasi forma di raggruppamento e ricerca.
Ecco che a questo punto nascono le Relazioni dove al centro si troverà il tuo Dipendente.
Tante informazioni saranno di tipo 1 a 1 (per esempio il dipendente potrà avere solo un certo Sesso… anche se nel corso della sua vita potrebbe cambiarlo? ;-)… vabbè che dire, bisogna riflettere anche su questo tipo di Info come meglio trattarla)
Altre informazioni saranno di tipo 1 a Molti (per esempio il dipendente potrà avere più titoli di studio e/o conoscere più lingue)
Il fine, non sarà mai di cosa voglio ottenere oggi da questo tipo di archiviazione, ma sarà di cosa potrò aver bisogno in un futuro.
Quindi non ti devi concentrare su quello che ti occorre Oggi, ma devi costruire un Database che nel Presente e in un Domani, possa sempre dare Tutte le risposte possibili ed immaginabili.
A tal fine deve essere pensato e realizzato un Database ben Relazionato e Flessibile, dove ogni tipo di informazione ha il suo Univoco posto e motivo di Esistere.
Ho cercato di semplificare al massimo il Concetto che vorrei far passare.
Sicuramente seguire questa logica ti agevola nel costruire successivamente ogni tipo di Archiviazione, Consultazione e Ricerca delle informazioni.
Non dovrai più impazzire per cercare soluzioni con il triplo carpiato rovesciato. Tutto risulterà agevole, semplificato e ottimizzato.
Quando costruisci una tabella, colonna per colonna, ti devi sempre fare una sola domanda che più o meno suona così: “e se avessi bisogno di?” Bene, la risposta sarà sempre la stessa, si deve creare una relazione ad una seconda tabella e la stessa a sua volta potrebbe anche aver bisogno di essere relazionata ad una altra tabella e così via dicendo…
Ora puoi passare a realizzare il codice e sarà semplicissimo e automatico crearsi le Query i Report, le Form, i Filtri. Tutte le tue esigenze saranno soddisfatte in men che non si dica, utilizzando semplicemente gli strumenti standard messi a disposizione dal Database.
Per esempio, venendo al tuo quesito, se vuoi esporre delle informazioni dove accanto al dipendente vuoi elencare le lingue conosciute e mettere il tutto in un unica riga…, in questo caso con l’Id Dipendente estrapoli, attraverso la sua relazione alla tabella Lingue, l’elenco delle lingue associate e le concateni in un unica stringa da esporre come risultato.
Ovviamente secondo l’oggetto che stai utilizzando, ci possono essere tecniche diverse da utilizzare per ottenere tale risultato.
Ma non sempre può risultare un valido sistema… se per esempio non hai sufficiente spazio orizzontale per concatenare e visualizzare tutte le lingue? Poi ti verrà troncata questa informazione che sia a video che in un report.
Esempio :
Mario Rossi (ecc.ecc…) Lingue: Italiano, Inglese, Francese, Te..
Ops… come vedi manca qualcosa, dove ho pensato di visualizzare o stampare non c’è abbastanza spazio perché il suddetto Mario Rossi conosce:
Lingue:
- Italiano
- Inglese
- Francese
- Tedesco
- Spagnolo
Bene!!! Allora per determinate informazioni dovrò necessariamente elencarle in verticale e non in orizzontale.
In sostanza nel progettare le visualizzazioni e/o i report, dovrai tener conto del tipo di informazioni e come poterle meglio esporle per non perdere nessuna di esse.
In questi casi la logica ti viene in soccorso e traccia la soluzione e la strada da percorrere.
Volevo essere sintetico, ma mi sa tanto che proprio non ci sono riuscito ;-)
Spero di essere riuscito a darti un suggerimento/consiglio.
;-)