Hi Leon
I dont want to rain on your picnic - but if your expertise in relational database design is low - this is not the project to start with.
A geneology application is essentially 1 main table . . a list of people. and several relationship tables.
Sounds simple enough. Unitil you bring in all the relationships between people .
Internally there are lots of many to many relationships . .and its the people table having numerous M:M relationships with itself.
when you consider all the possibilities . . father1 + mother1 > child1 . . then father1 + mother2 > child2. . how many relationships have i just described . . and each needs to be recorded
how about gandpa > pa > son > grandson . . . where's ma . .
there are 2 main relationships you need to identify
1 . partner-partner . . identifying marraige / de-facto . . or even accidental parenting . . these define some union betwen 2 people . . usually - geneologically - producing the next relationship
2 . parent - child . . remember there are "usually" 2 parents (defined by a union record)
I would suggest that relationship is between the union (partner-partner) relation record and the people (child) record.
so you dont store the parents ID in a child record - you store the union record ID.
Im getting a headache just thinking about this - and I built a fully functional geneology system a few years ago.
and i havent mentioned adoptees yet . . . . . .
cheers
PaulG