Relazioni tra tabelle

di il
9 risposte

Relazioni tra tabelle

Salve a tutti. Sono un nuovo utente e un principiante con Access.
Sto cercando di creare un database che mi raccolga i dati di un foglio di famiglia (sono le schede che si utilizzano negli uffici anagrafe comunali per inserire i dati relativi alle famiglie presenti nel comune).
I base ai dati presenti nella versione cartacea ho creato sette tabelle che contengono i dati campi necessari per inserire i dati così composte:

TCapoFamiglia: IDCapoFamiglia (PK), cognome (testo), nome(testo), foglio di famiglia (numerico). è la tabella principale con cui dovrebbero relazionarsi le altre tabelle;

TAbitazione: IDAbitazione(PK), e altri campi;

TCompilato: IDCompilato(PK) e altri campi; dove vengono indicati i dati relativi a quando il foglio è stato compilato;

TEliminato: IDEliminato(PK) e altri campi; dove vengono indicati i dati relativi alla eventuale cancellazione dai registri del nucleo familiare;

TRelazioneCapoFamiglia: IDRelazioneCapoFamiglia(PK) e altri campi; dove vengono indicati i dati relativi alla composizione del nucleo familiare (es: marito, moglie, figlio, ecc);

TStatoCivile: IDStatoCivile(PK) e altri campi; dove vengono indicati lo stato civile del capo famiglia e degli appartenenti al nucleo familiare;

TCittadinanza: IDCittadinanza(PK) e altri campi. dove vengono indicati i dati relativi alla cittadinanza.

Ora sto trovando difficoltà a relazionare le tabelle in modo che inserendo/aggiornando i dati della TCapoFamiglia si aggiornino anche i campi relativi alle altre tabelle.

Non so se sono stato chiaro e nel caso vi prego di indicarmi dove sono "mancante" e siate clementi...

Grazie a chi vorrà darmi delle delucidazioni in merito al problema.

Se può essere utile allego uno screenshot delle tabelle nella scheda relazione di Access.
Allegati:
30793_8af7eda60ea0f5ff42ada19dffd78a09.jpg
30793_8af7eda60ea0f5ff42ada19dffd78a09.jpg

9 Risposte

  • Re: Relazioni tra tabelle

    1. Perchè non hai una semplice tabella Anagrafica (o Persone)?
    2. Ti serve poi una tabella Famiglie.
    3. Una Famiglia ha molte Persone con relativo Ruolo. Ma poi accade che Rossi Mario che prima era figlio di Rossi Antonio, diventa capo famiglia di una nuova famiglia. Penso che anche Persone è in relazione uno-a-molti rispetto a Famiglie. Ti serve una tabella di congiunzione ComponentiFamiglie.
    4. Non conosco bene questo campo professionale, vado a mio istinto. Come funzionano le gestioni di figli che cambiano Famiglia se i genitori si separano e poi ognuno costituisce altra famiglia? E le adozioni? Spero tu abbia le idee chiare su come gestire tutto ciò...ripeto non conosco leggi, casistiche, consuetudini...

    Per ora ti ho solo dato qualche indicazione base di partenza. Ricorda che le tabelle FIGLIE devono contenere un campo IDChiaveEsterna da cui prendere il lato molti da una tabella MADRE...questi sono concetti base.
  • Re: Relazioni tra tabelle

    Grazie per la risposta. Chiaramente le tabelle figlie avranno la chiave esterna.
    1. Ho inteso così la TCapo_Famiglia
    2. Avevo ipotizzato la TRelazione_capo_famiglia come tabella Famiglie che mi hai suggerito.
    3. Questo tipo di archiviazione serve solo per tenere traccia delle persone nel nucleo familiare originale. Nella versione cartacea, un eventuale distacco dalla famiglia di origine, ad esempio di un figlio, viene solo annotato nella scheda della famiglia originale. Verrà compilata una nuova scheda per l'eventuale nuova famiglia.
    4. Questi dati nel mio caso non sono previsti, comunque c'è un campo note dove eventualmente inserire le varie annotazioni.
  • Re: Relazioni tra tabelle

    GiuMar ha scritto:


    Questo tipo di archiviazione serve solo per tenere traccia delle persone nel nucleo familiare originale. ... Verrà compilata una nuova scheda per l'eventuale nuova famiglia.
    Quindi, ritornando su Rossi Mario con più Ruoli, convieni che ti servono le seguenti tabelle:

    Persone
    IDPersona (PK)
    Nome
    Cognome
    DataNascita
    ...altri dati strettamente personali...

    Famiglie
    IDFamiglia (PK)
    NomeFamiglia
    Indirizzo
    IDComune

    ComponentiFamiglie
    IDCF (PK)
    IDPersona (FK)
    Ruolo
    IDFamiglia (FK)

    Relazioni:
    Famiglie.IDFamiglia uno-a-molti ComponentiFamiglie.IDFamiglia
    Persone.IDPersona uno-a-molti ComponentiFamiglie.IDPersona
  • Re: Relazioni tra tabelle

    Queste tabelle che mi hai indicato sono di congiunzione oppure vanno a sostituire quelle che ho fatto io?
  • Re: Relazioni tra tabelle

    Dal ragionamento generale che ho capito io, utilizza solo le tre tabelle che ti ho suggerito (forse manca qualche altro campo per te significativo, ma che io non posso sapere). Tutte le altre tabelle (credo) non ti servono.
  • Re: Relazioni tra tabelle

    Ho fatto tutte quelle tabelle che vedi nello screenshot del primo messaggio proprio perchè ho tutti quei dati da inserire... A questo punto, seguendo il tuo consiglio dovrò inserire tutti i campi che mi servono nelle tre tabelle che mi hai indicato.
  • Re: Relazioni tra tabelle

    Cerca di cogliere il senso "essenziale" del suggerimento che ti ho dato. Solo tu sai meglio di me quali dati ci sono in tutte le altre tabelle. Cerca di trovare tutti i dati utili e omogenei da inserire nelle "tre" tabelle. Se hai dubbi, conserva sempre una copia del database di partenza...non si sa mai...in questi casi combinare pasticci è facile.
  • Re: Relazioni tra tabelle

    OsvaldoLaviosa ha scritto:


    Cerca di cogliere il senso "essenziale" del suggerimento che ti ho dato. Solo tu sai meglio di me quali dati ci sono in tutte le altre tabelle. Cerca di trovare tutti i dati utili e omogenei da inserire nelle "tre" tabelle. Se hai dubbi, conserva sempre una copia del database di partenza...non si sa mai...in questi casi combinare pasticci è facile.
    Ciao Osvaldo. Sto impostando il database in base ai tuoi suggerimenti. Mi sai dire perchè se imposto l'integrità referenziale mi dà errore?
    Allegati:
    30793_4845b1c011c92387b99e42b502f5ae35.jpg
    30793_4845b1c011c92387b99e42b502f5ae35.jpg
  • Re: Relazioni tra tabelle

    Te lo dicono i 3 righi subito dopo l'intestazione del messaggio errore. Hai devi valori ComponentiFamiglie.IDPersona che non compaiono nel Persone.IDPersona. Questo ti impedisce di impostare la relazione.
Devi accedere o registrarti per scrivere nel forum
9 risposte