Relazione di tabella con se stessa

di il
6 risposte

Relazione di tabella con se stessa

Ciao,
avrei bisogno di capire come modellare la tabella persone quando un soggetto una volta è considerato figlio ed ha un padre e una padre (sempre persone) e una volta è madre ed ha un figlio.
come posso risolvere il problema?
grazie

6 Risposte

  • Re: Relazione di tabella con se stessa

    flora ha scritto:


    avrei bisogno di capire come modellare la tabella persone quando un soggetto una volta è considerato figlio ed ha un padre e una padre (sempre persone) e una volta è madre ed ha un figlio.
    Non ho capito! Forse c'è anche un errore di digitazione dove "una padre" in realtà voleva essere "una madre"?
    Prova a scrivere le informazioni di cui disponi e di come le devi mettere in relazione.
    Presumo che ad intuito potresti fare così
    
    CampoID (chiave primaria)
    Paternita (numerico)
    Maternita (numerico)
    Cognome
    Nome
    (altri campi)
    con [Paternita] destinato a contenere l'ID del padre e [Maternita] l'ID della madre. Quindi la tabella sarà collegata a se stessa due volte (nella videata delle relazioni dovrai aggiungere 3 volte la stessa tabella) con la relazione tra [CampoID] - [Paternita] e [CampoID] - [Maternita]
  • Re: Relazione di tabella con se stessa

    Nella tabella tblPersona non devi aggiungere NULLA che definisca di chi è parente... sarebbe un errore.
    Serve una Tabella Relazionale di parentela.

    Se devi costruire una Gerarchia Parentale, servono 2 Tabelle, e la Tabella Persone si AutoReferenzia sulla 2° una Volta lato Diretto e l'altra Lato Parentale, poi serve un Attributo Parentale...!

    tblPersona (IdPersona)
    tblParentela(IdPersona, IdParentela, TipoParentela)

    Applichi l'auoreferenza di IdPesona della Tabella tblPersona su Entrambi i Campi IdPersona, IdParentela ma inserendo una 2° Tabella tblPersona nel Diagramma ER.

    In questo modo puoi costruire una sorta di Albero Genealogico ed ogni persona può avere MOLTI rapprti relazionali, Padre/Figlio/Fratello/Cugino ecc... di Molte persone...!
  • Re: Relazione di tabella con se stessa

    @Alex ha scritto:


    ...
    In questo modo puoi costruire una sorta di Albero Genealogico ed ogni persona può avere MOLTI rapprti relazionali, Padre/Figlio/Fratello/Cugino ecc... di Molte persone...!
    Perfetto (ovviamente).
    Il mio suggerimento era una versione molto "alla buona", limitata (non solo alla richiesta ma anche come aggettivo suo proprio). L'ho visto realizzato come da mio suggerimento nella situazione in cui i collegamenti sono solo 3, ben definiti: padre, madre e coniuge.
  • Re: Relazione di tabella con se stessa

    Grazie ad entrambi, in relatà mi convince quanto scritto da Alex in quanto il tipo di relazione puo cambiare di volta in volta. In effetti avevo semplicemente esplicitato il rapporto di parentela padre e madre ma puo essere anche altro o niente di esplicito....

    provo semmai richiedo info
  • Re: Relazione di tabella con se stessa

    Ciao,
    provo ad essere più precisa rispetto a quanto ho chiesto precedentemente. Devo preparare un dbase in cui modello le persone e le loro relazioni in ottica di cittadinanza. Ad esempio ho i casi in cui un bambino è cittadino se padre e madre cittadini; un bambino straniero è diviene cittadino italiano se adottato da padre e madre italiani Ecc..... Io pensavo quindi di fare una tabella tblPersona (IdPersona, nome cognome, nazionalita, data di nascita)
    e una tabella tblParentela(IdPersona, IdParentela, TipoParentela) in cui specificavo il tipo di parentela e il legame tra le persone.

    va bene se in TipoParentela specifico
    1=è adottato
    2= èfiglio
    3= è apolide
    ecc....

    Grazie
  • Re: Relazione di tabella con se stessa

    flora ha scritto:


    Ciao,
    provo ad essere più precisa rispetto a quanto ho chiesto precedentemente. Devo preparare un dbase in cui modello le persone e le loro relazioni in ottica di cittadinanza. Ad esempio ho i casi in cui un bambino è cittadino se padre e madre cittadini; un bambino straniero è diviene cittadino italiano se adottato da padre e madre italiani Ecc..... Io pensavo quindi di fare una tabella tblPersona (IdPersona, nome cognome, nazionalita, data di nascita)
    e una tabella tblParentela(IdPersona, IdParentela, TipoParentela) in cui specificavo il tipo di parentela e il legame tra le persone.

    va bene se in TipoParentela specifico
    1=è adottato
    2= èfiglio
    3= è apolide
    ecc....

    Grazie
    Quando uno fa una domanda che pensa di semplificare il concetto, poi si scopre che le cose stanno diversamente... serve portare pazienza...?

    Sinceramente credo tu faccia molta confusione concettuale...!
    La 2° TAbella serve per definire la relazione PARENTELARE... non la Condizione "Adottato/Figlio/Apolide/..."
    Armando può essere Figlio di Giuseppe, ma essere Adottato ed Apolide... quindi non confondere tutto in un solo calderone.
    Innanzitutto se una Pesona ha la Cittadinanza devi trovarlo nella Anagrafica(tu l'hai chiamata tblPersone, tutti la chiamano Anagrafiche...)
    In qusta Tabella per attribuire lo stato di CITTADINANZA devi poter verificare se Entrambi i Genitori(Relazione di Parentela con la tabella tblParentela) sono Cittadini...
    Per fare questo si estrae una Query con IDPersona corrispondente alla persona da Cercare e recuperi i 2 Campi IdParentela che corrispondono ai Genitori, mettendo in JOIN in una Query la Tabella Anagrafica, puoi leggere il Campo Cittadinanza, e da li capire se questa condizione è VALIDANTE...

    La questione di Adottato, non attribuisce in automatico la Cittadinanza Italiana... e se i genitori sono Australiani...?

    Insomma... riflettici bene e con calma, pensando che la gestione Gerarchica è discretamente complicata per chi ha poca pratica... quindi se devi usarla perchè nel tuo caso è necessaria, devi avere una buona base tecnica.
Devi accedere o registrarti per scrivere nel forum
6 risposte