Ik wil een stamboomsysteem gaan maken. Hoe moet ik de personeninformatie in de db gaan stoppen?
Ik dacht aan zoiets:
table personen
stamboom id, naam, van-tot (bijv 1822 - 1900), thumb, generatie, linkend-to (ouders)
De informatie moet later grafisch worden verwerkt (hier komt uiteraard een stukje rekenwerk bij kijken) dus wil ik de db zo overzichtelijk en simpel mogelijk houden. Is mijn structuur een goed idee of heeft iemand een beter idee?
Wat is 'van-tot'? Dat klinkt mij in de oren als een geboortedatum en een overlijdensdatum. Dat zijn dus 2 verschillende gegevens en die sla je nooit op in 1 veld.
'Generatie' kan ik me niks bij voorstellen, wat sla je daar in op?
'linkend-to' lijkt mij gewoon een parent_id en daar kun je er meerdere van hebben. Je hebt in elk geval vader en moeder, maar ook stiefouders zijn mogelijk. Dat vraagt dus om een koppeltabel.
MyISAM is een slecht plan, daarmee kun je onmogelijk een relationele database aanmaken. Gebruik minimaal innoDB, maar nog liever een echte relationele database.
Ps. Let even op geldige kolomnamen, een - (min) gebruik je om te rekenen...
Idd ik zal op de namen letten. Ik denk dat ik vrijwel zeker geen beschikking zal hebben over innoDB (het zal niet worden geplaatst op mijn eigen host), en dit moet toch worden geinstalleerd door de hoster?
Het woord generatie zegt eigenlijk al wat het inhoudt. Stel je hebt dus in ieder geval de stichters van de hele stamboom, die hebben kinderen, en die weer kinderen. Dan zijn de laatsten de derde generatie lijkt me?
van-tot is idd geboortedatum en overlijdensdatum. Deze zullen uiteraard worden gescheiden.
Hoeveel tabellen heb ik nodig?
Ik neem aan stambomen, personen, stiefouders?
Ik zie hier net een tutorial over Siblings en ancestors, is het een goed idee om zo'n xml structuur op te slaan in de db?
Of moet ik juist alleen werken met id's om personen aan elkaar te koppelen?
Bedankt voor het commentaar!
[edit]
Ik zag je reactie te laat jason!
Bedankt voor de info, alleen snap ik je structuur niet helemaal!
[/edit]
Als je nog niet zo goed weet hoe je databases moet koppelen etc. Zou ik je daar eerst maar even op gaan richten. Lezen lezen lezen lezen dus ;)
InnoDB is een engine van MySQL, bijna overal ondersteunt...
Id, Name, Date of Birth, Date of Death, Fathers ID, Mothers ID, Partner ID
En wat nu als iemand meerdere partners heeft, dus bijvoorbeeld gescheiden en hertrouwd is? En hoe ga je nu stiefvaders/stiefmoeders opnemen in je tabel?
Kortom, je krijgt dubbele informatie en dit model zal dus niet voldoen.
ps. Je zult dus in ieder geval 1 tabel moeten hebben met daarin alle persoons informatie. Maar daarnaast moet je nog een aparte tabel hebben waarin je de relaties tussen verschillende personen opslaat.