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.