[DB] familie relatie vast leggen in database

Pagina: 1
Acties:
  • 207 views sinds 30-01-2008
  • Reageer

  • palloquin
  • Registratie: Juli 2000
  • Laatst online: 29-01-2021
Hoi...

Ik ben op zoek naar een elegante oplossing om familirelaties op te slaan...

Ik heb een tabel met personen. Persoon a zou een kind kunnen zijn van personn b... etc.

Ik kan zo snel ee 5tal relaties verzinnen:
- Ouder <--> Kind
- Grootouder <--> Kleinkind
- Oom/tante <--> Neef/Nicht (i.d.z.v. Nephew)
- Neef/Nicht <--> Neef/Nicht (i.d.z.v. Cousin)
- Broer/Zus <--> Broer/Zus


Verder kan er nog het nodige aan achter-ooms en overgroot-ouders verzonnen worden.. maar deze relaties zijn het belangrijkst...

Heeft men ideeen...?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Zorg voor een object georienteerde of semantische database ;)

Dat is stukken makkelijker hiermee...

Magoed, met wat leuke koppeltabellen en "relatietypen" kom je ook wel redelijk ver denk ik.

  • CubicQ
  • Registratie: September 1999
  • Laatst online: 21:09
Volgens mij heb je aan

Persoon(pid, naam, etc)
Getrouwd(tid, pid1, pid2, begin, eind, etc)
Kind(kid, pid, tid, etc)

genoeg. Dan kan je met die dingen de rest van de relaties afleiden.

Als je bijvoorbeeld ouder en grootouder gaat vastleggen krijg je een heleboel dubbele informatie, een grootouder is gewoon een ouder van een ouder. Neef, etc. allemaal net zo.

Verwijderd

Op woensdag 06 februari 2002 10:13 schreef palloquin het volgende:
Hoi...

Ik ben op zoek naar een elegante oplossing om familirelaties op te slaan...

Ik heb een tabel met personen. Persoon a zou een kind kunnen zijn van personn b... etc.

Ik kan zo snel ee 5tal relaties verzinnen:
- Ouder <--> Kind
- Grootouder <--> Kleinkind
- Oom/tante <--> Neef/Nicht (i.d.z.v. Nephew)
- Neef/Nicht <--> Neef/Nicht (i.d.z.v. Cousin)
- Broer/Zus <--> Broer/Zus


Verder kan er nog het nodige aan achter-ooms en overgroot-ouders verzonnen worden.. maar deze relaties zijn het belangrijkst...

Heeft men ideeen...?
Met een relationele database (zoals Access/MySQL) zou je al een stuk verder kunnen komen. Echter zul je behoorlijk ingewikkelde queries krijgen om te achterhalen wiens achterneven of -nichten iemand kan hebben. Wordt trouwens leuk zodra in een gezin de vader met de dochter van de buurvrouw trouwnt en de zoon (van vader) met de buurvrouw (moeder van de dochter met wie pappie getrouwd is dus). Zodra ze allebei kindertjes krijgen wordt het nog leuker! Suc6

  • palloquin
  • Registratie: Juli 2000
  • Laatst online: 29-01-2021
Op woensdag 06 februari 2002 10:18 schreef CubicQ het volgende:
Volgens mij heb je aan
Persoon(pid, naam, etc)
Getrouwd(tid, pid1, pid2, begin, eind, etc)
Kind(kid, pid, tid, etc)
genoeg. Dan kan je met die dingen de rest van de relaties afleiden.
Is niet helemaal waar, er zit maar een heel klein (relatief) groepje mensen in de DB, als de ouder in zijn leven niets interessants heeft gedaan, komt deze ook niet voor... (Grootouder & kleinkind wel)

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 22:18

TheDane

1.618

volgens mij kun je 't in 3 tabellen vangen:

users
user_id
naam
etc

roles
role_id
rol (bijv: is_kind_van, is_man_van, is_neef_van etc)

user_role_relations
user1_id
user2_id
role_id

waarbij user1_id is role_id van user2_id

kun je volgens mij alles in kwijt, redelijk efficient


[edit]
user_role_relations zou in principe redundante rows bevatten (user1_id is_man_van user2_id & user2_id is_vrouw_van user1_id bijvoorbeeld), maar 't maakt 't opzoeken van data wel stukken makkelijker denk ik

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:59

Creepy

Tactical Espionage Splatterer

hmm.. familie relaties.. klinkt als een typische schoolopdracht.

persoon(id, geslacht, naam, vader, moeder, nog meer zooi)

getrouwd(id, persoon1,persoon2)

een persoon heeft dus een vader en een moeder.. zo kan je dus alle relaties van kind/ouder/opa/oma/over over over grootouder/neef/nicht/tante achterhalen (vader en moeder is dus id uit persoon!)

en wie met wie is getrouwd kan je ook zien zo... (persoon1 en persoon2 is weer id uit persoon)
en zelfs het homohuwelijk kan je op deze manier meenemen :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1