Rispondo alle indicazioni, per chiarire i vari punti:
CarlettoFed ha scritto:
Per non inserire un campo in più, quello della chiusura, guarda come ti complicheresti la vita:
- Dipendente che si chiama Magazzino
Essendo un campo che gestisce la assegnazione come posizione ove è collocato lo strumento, può essere denominato "AssegnatoA"
CarlettoFed ha scritto:
- Necessità di creare, sempre, un nuovo record per la chiusura
Non esiste "chiusura" ma lo status ove lo strumento è assegnato ed in quanto aggiornato nelle varie posizioni (dipendente/magazzino) i dati si presentano normalizzati (per quel che può contare nella situazione attuale) con operazioni basilari in tutti i casi.
CarlettoFed ha scritto:
- Tutte le varie query, che tra l'altro nell'ultimo caso non darebbe un risultato corretto se tra due date di assegnazione di uno strumento ad un Dipendente ce ne fosse una di un'altro dipendente che interromperebbe il periodo, per ottenere, anche se fosse corretto, un risultato che si otterrebbe con una sola query
Dipende se sia accettabile il passaggio diretto fra dipendenti (senza passare dal magazzino) che è possibile e comunque controllabile se non voluto (così come ogni altra operazione di cui si voglia verifica).
Mi permetto alcune, ulteriori, considerazioni a partire dalla proposta di CarlettoFed del 05 gen 2018, 21:24 (ove si propone una gestione del periodo con le due date di assegnazione.
CarlettoFed ha scritto:
All'atto di nuova assegnazione dovranno essere proposti, tramite opportuna casella combinata, solo gli strumenti che risultano, in quel momento, privi di DataFineAssegnazione.
Nella fase iniziale con tutti gli strumenti non assegnati (che dovrebbero essere secondo inventario a Magazzino) non vi è la DataInizioAssegnazione e la DataFineAssegnazione per cui è da gestire una procedura ad hoc di scelta fra due componenti quelli movimentati e quelli no.
CarlettoFed ha scritto:
"Nel momento in cui l'assegnazione viene chiusa, inserendo la Data di chiusura, è implicito che lo strumento rientra in Magazzino.
Se uno strumento rimane a magazzino e non viene mai assegnato, non avrà in nessun caso la data di chiusura, atta ad identificare la posizione a Magazzino (lo sarà solo se tutti gli strumenti saranno movimentati almeno una volta).
CarlettoFed ha scritto:
All'atto di nuova assegnazione dovranno essere proposti, tramite opportuna casella combinata, solo gli strumenti che risultano, in quel momento, privi di DataFineAssegnazione.
Verrà così effettuata la chiusura del periodo in cui lo strumento è assegnato, al dipendente; quindi per determinare l'elenco degli strumenti assegnati al dipendente si effettuerà una query ove la DataFineAssegnazione non è valorizzata.mentre per quelli a Magazzino si dovranno determinare gli strumenti la cui operazione è in chiusura (con entrambe le date) quale massimo della DataFineAssegnazione a cui dovranno essere aggiunti in qualche modo gli strumenti mai movimentati.
Per quanto riguarda i periodi viene semplificato il calcolo fra le 2 date nel caso assegnazione al dipendente ma nel caso del magazzino sarà legato alla DataInizioAssegnazione (al dipendente) - la DataFineAssegnazione (operazione conclusa che identifica lo status a magazzino) del record, temporalmente, precedente. Ne consegue che vi saranno diverse modalità di calcolo per la determinazione dei periodi di inventario.
Quanto sopra per evidenziare i differenti punti di vista, che magari potrebbero innescare ulteriori elementi di discussione, ma in ogni caso, sarà l'utente a stabilire (in base alle sue valutazioni) la struttura che vorrà impiegare.