Db per gestione oggetti smarriti

di il
9 risposte

Db per gestione oggetti smarriti

Ciao a tutti,
sto realizzando un piccolo db che gestisca un archivio degli oggetti smarriti.
Sono partito realizzando 3 tabelle e cioé:
1* anagrafica
2* ricevente (persona addetta all'ufficio)
3* estremi del fatto (data e ora di ritrovamento, località, ecc.).
Giacchè in anagrafe può esserci sia il proprietario sia chi trova l'oggetto, come ho imparato da
Alex e Osvaldo, (se mi leggete, approfitto per ringraziarvi), ho inserito un campo nella tabella
ANAGRAFICA che è QUALIFICA nel quale indico - appunto - la qualifica di PROPRIETARIO O RITROVATORE circa quella determinata persona.
Per comodità d'uso contavo di realizzare, quindi, una struttura a schede (3) nelle quali inserire
FATTO-RITROVATORE-PROPRIETARIO.
Ebbene siccome ho una sola tabella ANAGRAFE non posso distinguere le persone, poichè nella struttura a schede posso attingere solo da tabelle e non da altre fonti (query, nel mio caso), come faccio a indicare che in un caso il sig. PINGO è RITROVATORE oppure PROPRIETARIO ?
Come se non bastasse nel realizzare la struttura i dati relativi a FATTO me li fa inserire mentre
per le altre due schede sono completamente bloccato.
Avete idea di quale sia la procedura corretta da seguire e dove eventualmente combino pasticci ?

Grazie

9 Risposte

  • Re: Db per gestione oggetti smarriti

    Non so se ti darò una risposta completa, ma di sicuro il campo Qualifica, di cui tu parli, non va inserito in tabella Anagrafica, in quanto Tizio oggi può essere lo smarritore, domani il ritrovatore, dopodomani l'impiegato dell'ufficio (quello che tu chiami "ricevente").
    tblAnagrafica deve essere la più semplice possibile dove inserisci dati strettamente anagrafici.
    IDPersona
    Nome
    Cognome
    ecc....

    tblEstremiFatto
    IDEstremoFatto
    Data
    Luogo
    Oggetto
    ...altri eventuali campi...
    IDPersona
    QualificaPersona

    Ovviamente Anagrafica.IDPersona uno-a-molti con EstremiFatto.IDPersona

    Questo, almeno come ragionamento base, va affrontato così.
    Quello che non ci dici, o almeno non hai previsto ancora, se la tabella EstremiFatto può includere record sia quando un oggetto viene portato all'ufficio Oggetti Smarriti, sia quando viene trovato il leggittimo proprietario. Ma qui occorre ragionarci un po' su.
  • Re: Db per gestione oggetti smarriti

    Bentrovato Osvaldo e come sempre grazie della tua risposta.

    Naturalmente nella tabella FATTO ci saranno record sia per quanto viene portato all'ufficio oggetti smarriti sia per oggetti che vengono riconsegnati al PROPRIETARIO sia oggetti non reclamati e senza valore legale che dopo un tot. verrebbero distrutti.

    Circa l'abbinamento Anagrafica.IDPersona con EstremiFattoIDPersona ho provato a realizzare una relazione uno-a-molti ma non ne cavo un ragno dal buco. Nel senso che quando vado a r ealizzare la maschera FATTO non mi accetta i dati delle persone (???)

    Ciao e grazie
  • Re: Db per gestione oggetti smarriti

    Non è chiaro quello che vuoi dire, ma sospetto che tu pretendi di digitare un Nome o Cognome e ovviamente in IDPersona c'è memorizzato un numero ID relativo a Tizio.
    Oppure, nel caso Caio non è presente nella tabella Anagrafica, occorre mettere a punto un meccanismo per aggiornarla.
    Hai creato almeno una casella combinata sul campo EstremiFatto.IDPersona?
  • Re: Db per gestione oggetti smarriti

    Quello che vorrei ottenere é una struttura a schede divisa cosi:

    * scheda FATTO con ovviamente gli estremi del ritrovamento, la descrizione dell'oggetto, una foto, ecc.
    * scheda PROPRIETARIO dove indicare i dati della persona
    * scheda RITROVATORE dove indicare i dati della persona

    Poi dovrei fare delle altre cose per gestire per esempio la pubblicazione dell'elenco degli ogegtti ritrovati in un certo periodo.
    In questo caso farei un report semplice con data inizio e fine per cercare nel db.

    La struttura a schede mi sembra la + user friendly, forse si potrebbe pensare anche ad altro ...

    Questa però è un'alktra storia.

    Intanto grazie
  • Re: Db per gestione oggetti smarriti

    La tabella MASTER è la Tabella in cui REGISTRI il FATTO...
    Quindi in questa Tabella dovrai avere 2 Campi che fanno riferimento alla Tabella Anagrafica.

    TblFatto
    
    IdFatto (PK Counter)
    Data
    IdProprietario(FK)
    IdRotrovatore(FK)
    Altri campi specifici del FATTO...
    In questo modo ovviamente la SCHEDA FATTO avrà i controlli basati sulla Tabella [TblFatto]
    la scheda PROPRIETARIO conterrà una SubForm legata alla Form con Campo Master/Secondario
    IdProprietario(Master)--IdAnagrafica(Secondario)
    La scheda RITROVATORE conterrà una SUBFORM legata alla Form con Campo Master/Secondario
    IdRotrovatore(Master)--IdAnagrafica(Secondario).

    Questa è la struttura che devi adottare.
  • Re: Db per gestione oggetti smarriti

    La maschera a schede è soltanto un modo di visualizzare i dati. Non c'entra nulla con la risoluzione strutturale del tuo problema. La struttura proposta da me precedentemente ha una sua logica. Però penso pure che stiamo parlando di un "database di oggetti". Ogni oggetto andrebbe identificato come IDOggetto. Sul IDOggetto è possibile tracciare uno storico di quello che gli succede all'interno dell'ufficio. Allora perchè non pensare a una relazione molti-a-molti fra ANAGRAFICA e OGGETTI? Questa la mia idea:

    ANAGRAFICA
    IDPersona
    Nome
    Cognome

    OGGETTI
    IDOggetto
    DescrizioneOggetto
    Foto

    FATTI
    IDFatto
    Data
    Descrizione (qui va scritto se l'Oggetto entra in ufficio, viene ritrovato, oppure distrutto)
    IDOggetto
    IDPersona
    QualificaPersona

    Relazioni:
    ANAGRAFICA.IDPersona uno-a-molti con FATTI.IDPersona
    OGGETTI.IDOggetto uno-a-molti con FATTI.IDOggetto

    ligiem ha scritto:


    * scheda PROPRIETARIO dove indicare i dati della persona
    * scheda RITROVATORE dove indicare i dati della persona
    Attento PROPRIETARIO o RITROVATORE, sempre Persone sono! Il campo QualificaPersona provvedere a distinguere chi è, il tutto condito dalla Data e DescrizioneFatto

    Per me una delle due strutture da me proposte deve essere il punto di partenza (io propendo per la seconda). Il come i dati devono essere visualizzati, filtrati, contestualizzati ecc. sono problemi che subentrano in un secondo momento.
  • Re: Db per gestione oggetti smarriti

    Salve a tutti.
    Ora sicuramente mi prendo una scudisciata da Alex, visto che in questo caso io lascerei perdere del tutto le 5 norme fondamentali della normalizzazione e creerei un'unica tabella, in cui raggruppare tutti i dati necessari, visto che comunque i soggetti cambiano in continuazione.
    Mi spiego, gli oggetti smarriti sono sempre diversi, i ritrovatori sono sempre diversi e l'unico che può ripetersi è solo il ricevente, quindi creare una struttura complessa per un data base di questo genere, provocherebbe solo un rallentamento nell'interrogazione del database e sopratutto, visto che l'utente vuole creare una struttura a schede, eviterebbe l'uso di più query perandare a prelevare i dati.
    Lo so che concettualmente è sbagliato, ma a volte la semplicità è quella che porta al risultato più semplice.
    Comunque, volendo creare delle relazioni, secondo me, il dato di partenza non deve essere l'anagrafe del ritrovatore o del ricevente, ma l'oggetto.
    Sono infatti gli oggetti smarriti il soggetto di questo database, gli altri sono semplici attori comprimari e tutto appunto deve girare intorno agli oggetti smarriti, che come detto ogni volta sono diversi.

    quindi come detto, o una unica tabella, dove alla fine i dati ridondanti sono praticamente nulli, oppure due tabelle,
    La principale quella legata all'oggetto smarrito
    e la seconda, dedicata all'anagrafe, in cui, oltre ai dati anagrafici della persona, ci deve essere un campo dove l'utente possa scegliere tra ritrovatore, proprietario o addetto all'accettazione.
  • Re: Db per gestione oggetti smarriti

    In realtà se vedi la mia risposta la Tabella centrale ha la logica che anche tu hai esposto.
    Come hai osservato dubito che le Anagrafiche verranno usate più di 1 volta, ma è pur vero che di norma le anagrafiche devono essere REGISTRATE con dei dati specifici e che non posson rientrare tutti nella TABELLONA dell'OggettoDenunciato, altrimenti si fa un bel Foglio di EXCEL...

    Quì non si tratta di applicare le 5FN, in quanto è applicabile solo la 1°, e dalla struttura che ho proposto tuttavia ripercorre quello che hai suggerito, con la differenza appunto dell'anagrafica.

    Per il resto, sarà l'OP a valutare, dopo aver capito pro e contro.
  • Re: Db per gestione oggetti smarriti

    Buongiorno a tutti e grazie delle risposte.
    Dato il mio sbattere la testa al momento avevo optato per una soluzione simile a quella proposta da mypipe e cioè, una sola tabellona nella quale far confluire tutto. Circa l'anagrafica ho inserito dati relativi a PROPRIETARIO e altri relativi RITROVATORE. Per quanto riguarda gli oggetti ho preferito non abbinare un-record-a-un-singolo-oggetto perchè pensavo potrebbe anche capitare (per esempio) un borsone con abiti ... allora (credo) sarebbe preferibile fare un elenco e via così.
    La soluzione della doppia anagrafica mi sembrava concettualmente elegante ma non sono riuscito a farla girare.
Devi accedere o registrarti per scrivere nel forum
9 risposte