Avatar billede leif Seniormester
13. august 2001 - 23:05 Der er 18 kommentarer og
4 løsninger

Relationer

Jeg er igang med at lave et stamtræs system, men er stødt en i nogen små problemer.

Jeg har en tabel med alle forældrene i, men nu vil vi lave det sådan at alle er i en database, fordi forældrene er jo også børn til nogen. Problemet er så at hvordan jeg nemmest for mig selv laver det sådan at jeg har et felt hvor der er børn i men det skal jo bare være deres id nummer reelt, der står relateret til en mand og en kvinde, men manden og kvinden må jo gerne have flere børn sammen. Oven i det, skal der laves sådan at når jeg står på en person, skal forældrer felter jo også bare være relationer til en anden person i den samme tabel.

Lyder sikkert lidt kryptisk, men så sig lige til.

Kan evt. kontaktes på ICQ 22794789 eller e-mail eksperten@ljnet.dk

Håber nogen kan hjælpe.

/leif
eksperten@ljnet.dk
Avatar billede mukke Nybegynder
13. august 2001 - 23:18 #1
Nøjes med at have een tabel:

personer

med felterne

ID
far
mor

begge disse refererer til personer.ID med een-til-mange

Udover de tre felter skal du naturligvis have andre relevante felter som navm og fødselsdato eller hvad du nu ønsker at gemme.

under relationer kan du vise een tabel 2 gange - på den måde kan du lave relationen.
Avatar billede mukke Nybegynder
13. august 2001 - 23:19 #2
(med begge disse mener jeg naturligvis far og mor)
Avatar billede leif Seniormester
14. august 2001 - 08:52 #3
Synes ikke jeg kan få den til det, hvis du gider kan du kigge på www.ljnet.dk/eksperten/stamtraev2000.mdb
Avatar billede moses Praktikant
14. august 2001 - 09:46 #4
Jeg kan altså ikke lade være med at more mig over din oprindelige beskrivelse. Den udtrykker bundærlig forvirring  ;-)

Du skal kun lave en ny tabel, hvis du har et nyt objekt med egenskaber (for at snakke objektorienteret).
Det er ikke så svært, som det lyder.

Personer er et objekt. Det er så ret ligegyldigt, om personer er forældre, barn, søster, bror, kone, mand bedstefar eller indbrudstyv.
Pånær ordet person, der er selve objektet, så er de andre ord det, som man kalder egenskaber for
dette objekt.

Det nemmeste ville være, hvis du købte mit Access program til at håndtere stamtræer. Det kan desuden holde styr på, hvornår de forskellige er blevet gift med hinanden, har fået børn, er blevet fængslet, har været til eksamen, har fanget verdens største haj eller er blevet student. Alle disse hændelser kan desuden indeholde dokumentation, som f.eks. billeder, kopi af attester, kommentarer, skitser osv.

Avatar billede leif Seniormester
14. august 2001 - 09:58 #5
moses >>> Jeg kan godt, li\' at du skriver jeg bare kan købe et Access program af dig, men for det første fortæller du ikke hvad det koster, for det andet fortæller du ikke om jeg kan læse om det nogen steder !!! En anden ting, rapport layoutet skal jo nok ændres, så er det noget man kan selv eller skal man have dig til det inden !!!

Og vi gik igang med det selv da vi synes det var mest spændende at prøve at lave det fra bunden.
Avatar billede moses Praktikant
14. august 2001 - 10:06 #6
Du kan være ganske rolig !! Mit program er også knap helt færdigt, som jeg vil have det. Jeg gik igang af nøjagtig den samme grund, som dig - Det skulle lige præcist kunne det, som jeg ville have det til og så skulle det være sjovt at lave. Man er vel et ægte legebarn ;-)

Egentlig er det ikke sjovt at bytte, men det kunne jo være, at en af os havde en god idé, som den anden kunne bruge.
Vi kunne jo eventuelt udveksle erfaringer engang imellem. Hvad siger du til det?

Jeg ved f.eks., at der findes nogle meget anvendte programmer, som kan generere ganske bestemte rapporter og transportfiler. Jeg ville meget gerne lave mit program, så det ud over mit eget format også kunne gemme i det andet format (med de begrænsninger det så gav), så hvis du finder ud af noget med disse formater, må du meget gerne sige til. Det samme kunne jeg gøre til dig, hvis der var noget, som du var interesseret i !?!

Avatar billede leif Seniormester
14. august 2001 - 10:46 #7
moses >>> Jeg forstår ikke helt din sætning \"Du skal kun lave en ny tabel, hvis du har et nyt objekt med egenskaber (for at snakke objektorienteret).
Det er ikke så svært, som det lyder.

Personer er et objekt. Det er så ret ligegyldigt, om personer er forældre, barn, søster, bror, kone, mand bedstefar eller indbrudstyv.
Pånær ordet person, der er selve objektet, så er de andre ord det, som man kalder egenskaber for
dette objekt.\"

Kan du sige det på en anden måde ???

Men det jeg ikke kan finde ud af er hvad jeg skal gøre når jeg skal sammenkæde en person ned som en far eller mor på en person, og hvordan jeg skal gøre når der skal være flere personer til en person da personen har nogen børn.
Avatar billede moses Praktikant
14. august 2001 - 11:04 #8
Du skal stille en tabel op med et ID-felt for et styk ukendt person op. Hvilke egenskaber (felter) skal der så være, for at kunne beskrive ham. Her er det vigtigt, at en egenskab, som det at være far, nødvendigvis også giver egenskaberne barn og kone ....
Der er altid nogle små fif man kan opfinde. F.eks er det ikke vigtigt at skelne imellem mor egenskaben (hvem er den ukendte persons mor) og far egenskaben. Det giver sig selv, da de to forælder-egenskaber peger på hver deres person, som så bare har en \"køn\"-egenskab. Det skal man jo alligevel altid vide om den ukendte person.

\"Fødsel\", \"dåb\", \"død\" og eventuelt \"begravet\" egenskaberne er datoer, klokkeslet og eventuelt andre data, som sted, kan du lige så godt indbygge, som egenskaber for den ukendte, da disse ting formentlig vil hænde for os alle (måske lige bortset fra dåb).
Øvrige ting, som f.eks. \"studentereksamen\", \"Doktorgrad\", \"Min første tur med bilen i havnen\" eller \"første mand på Mars\" er ligesom ikke noget, der hænder alle og enhver, så det vil nok være smartes at placere i en anden tabel:

Dens objekt er så \"En hændelse\". Dens egenskaber kan så være \"Hvem er det hændt\", hvilket blot er PersonID\'et, der viser tilbage til din persontabel. Så kunne der også være egenskaben \"Hvad er der hændt\", som et frit tekstfelt, en bilags egenskab, som kan indeholde word dokumenter, billeder ...

Du skal sikre dig, at du kun lige netop har de informationer, der skal til for at kunne \"regne sammenhængene ud\" - ALT ANDET ER SPILD !!

Når du definerer dine tabeller og relationer, kan du så begrænse valgmulighederne for f.eks. fader-feltet ved at benytte Lookup fanebladet i tqabel-design. Der kan du angive, at kun personer med køn=\"mænd\" kan indsættes ... osv.

Avatar billede mukke Nybegynder
14. august 2001 - 11:58 #9
Desværre kan jeg ikke rette i din database da min access 97 ikke kan lide den. jeg vil tro du bruger Access 2000?

Anyway, hvis du kommer på ICQ engang hvor jeg også er på skal jeg gerne forsøge at hjælpe dig igennem.

Men hvad felter har du på nuværende tidspunkt i din tabel?
Avatar billede tknudsen Nybegynder
14. august 2001 - 15:27 #10
som mukke foreslaar kan du noejes med een tabel til selve familie traeet - et eksempel:

tabel design:
PersonId  int (evt et autoid felt)
MotherId  int
FatherId  int
FirstName  text
SirName    text
Birth      datetime


tabel data:
PersonId  MotherId  FatherId  FirstName  SirName  Birth
  303      209      123    Kaj        Daller  15-04-1972
  209      78        51    Lene      Daller  12-08-1950
  123      62        38    Kurt      Daller  25-07-1945


heraf ses at Kaj Dallers foraeldre hedder Lene og Kurt Daller - id 209

Lene Dallers mor har id 78 og hendes far id 51.
Kurt Dallers mor har id 62 og hans far id 38.

Dvs Kajs bedsteforaeldre har foelgende id:
78, 51, 62 og 38... osv ...

Som Moses er inde paa kan du haefte andre oplysninger paa din hiraki tabel - altsaa oplysninger som der kan saettes paa alle mennesker - som feks foedsel olign. Vil du lave den oevrige ting placerer du i en anden tabel med et felt der \"peger\" paa PersonId feltet i hiraki tabellen:

PersonId  EventTime    Event
  303      10-10-2000  blablabla
  303      01-06-1995  blablabla
  209      15-04-1972  Lille Kaj

Avatar billede tknudsen Nybegynder
14. august 2001 - 15:28 #11
ok - der erlidt mundlort tilsidt - men meningen er der
Avatar billede moses Praktikant
14. august 2001 - 15:28 #12
Hvad så med personens KØN ??
Avatar billede tknudsen Nybegynder
14. august 2001 - 15:28 #13
pis - det er ikke engang sent :-)
Avatar billede moses Praktikant
14. august 2001 - 15:34 #14
Principielt må du ikke oprette to tabeller, som kan sammenlægges 1 til 1. Det vil sige hvor data i nr. 2 tabel udelukkende er afhængig af PersonID.
Det er jo tilfældet med fødsel, dåb, køn, død osv.

Men det er jo op til dig.

Sidenhen vil du så bare skulle åbne to tabeller for at få oplysninger om en person. Du skal oven i købet lave en tvunget refferentel en-til-en relation imellem de to tabeller, for hvad vil du med fødselsdagen på en person, der ikke er med i den første tabel. Han har så ingen navn ?!?!
Det kan heller ikke bringe meget, at en person i den første tabel ikke er født eller ikke har noget køn (selvom disse jo findes blandt f.eks. snegle).


Avatar billede moses Praktikant
14. august 2001 - 15:35 #15
Det skulle have været referentiel integration, men det er sgu da også et åndsvagt ord at finde på at kalde det  ;-)
Avatar billede tknudsen Nybegynder
14. august 2001 - 16:00 #16
moses >> Det princip synes jeg heller ikke at overskride idet jeg netop har foedsel med i \"hiraki\" tabellen. Desuden er jeg HELT enig i dit forslag - jeg ville bare uddybe med eksempler og burde egentlig heller ikke have lavet det som et svar.
Avatar billede juks Novice
15. august 2001 - 09:58 #17
ville det ikke være smarter at bruge famtree maker.......
Avatar billede leif Seniormester
15. august 2001 - 10:00 #18
juks >>> Uddyb ???
Avatar billede moses Praktikant
15. august 2001 - 12:31 #19
Så er det jo ikke sjovt længere !!!
Og man kan ikke lave det lige præcist, som man vil have det !!
Avatar billede tknudsen Nybegynder
15. august 2001 - 12:47 #20
Det synes jeg moses har ret i - hvorfor bruge andres sw naar man kan ha fornoejelsen af at lave det selv :-)

Denne \"opgave\" er da ideel til at laere at lave en relationel database + der kan hurtigt puttes en masse koed paa - moses har garanteret nogle ideer :-)
Avatar billede moses Praktikant
15. august 2001 - 13:20 #21
Jada. Hvad med en knap, der loader hele dit stamtræ ud på internettet eller hvad med en funktion, der kan link\'e sig til en af de mange standard stamtræ-programmers filer ude på nettet, så man kan hente oplysninger om personer, som man er i familie med.

Avatar billede leif Seniormester
13. september 2001 - 07:30 #22
Lukker, har ikke haft tid til a kigge på det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester