Database con accesso multiutente

di il
3 risposte

Database con accesso multiutente

Buon pomeriggio a tutti,

Ho creato, per l'organizzazione dove lavoro, un piccolo database in Access per la gestione di alcune abilitazioni alla guida di veicoli speciali, composto da un back-end e due diversi tipi di front-end: uno per l'immissione/modifica di dati, un altro per la sola visualizzazione dei dati e l'esecuzione delle query.

Il sistema è piaciuto e mi hanno chiesto di ampliare le capacità del database inserendo anche la gestione di qualifiche ottenute con la frequentazione di corsi. Il tutto ruoterebbe attorno alla tabella Anagrafica già esistente. I lavoratori sono divisi in squadre, la squadra è registrata su un apposito campo della tabella Anagrafica.

Ho già buttato già uno schema di tabelle e relazioni, ma poi ho cominciato a pensare ad un eventuale sviluppo futuro. I lavoratori "protagonisti" di questo database sono divisi in squadre e vorrei creare un'interfaccia che permetta ad ogni caposquadra di vedere solo i lavoratori sotto di lui (attualmente i capisquadra utilizzano il front end in modalità solo lettura).

Tralasciando il fatto che Access non sia la scelta ideale per un database multiutente, come devo progettare la nuova componente del database (ed eventualmente modificare la vecchia ) per inserire la possibilità di accesso multiutente in modo tale che l'utente A possa visualizzare solo i record della squadra A?

Su un forum ho visto come creare un sistema di login per far aprire ad utenti diversi maschere diverse con permessi diversi, per cui ho pensato a tre ipotesi:
1) divido la tabella Anagrafica in tante tabelle quante sono le squadre e al momento del login creo i collegamenti alla sola tabella della squadra interessata, ma mi sembra molto complesso da gestire, anchè perchè il numero di squadre può cambiare e succedere spesso che un lavoratore passa da una squadra ad un'altra.
2) progetto il front end destinato ai capisquadra in modo tale che ogni maschera/report faccia riferimento ad una selection query che, al momento del login, modifico inserendo un apposito WHERE. Questa credo sia la migliore.
3) forse dovrei eliminare il campo Squadra da Anagrafica e creare una tabella molti-a-molti tra Anagrafiche e ElencoSquadre? Ma in questo caso dovrei modificare il vecchio database in maniera consistente, ma sarei disposto a farlo se nel futuro mi permettesse di implementare la multiutenza.

L'opzione 2 è percorribile? Se seguo l'opzione 2 e tengo un'unica tabella Anagrafica, in futuro potrei migrare tutto il database si di un motore più performante tipo SQL server o altro? Mi sto solo facendo solo un trip mentale?

Scusate se mi sono dilungato, ma ho cercato di essere il più chiaro possibile.
Grazie mille per il vostro tempo

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte