Ga naar inhoud
  • 0

relatie toevoegen


Ivan Vaes

Vraag

Ik heb een databank die opleidingen beheerd.

oorspronkelijk was de relatie in de databank eenvoudig nl. :

per opleiding was er slechts één groep, en per groep meerdere onderdelen. Maar nu moet het mogelijk zijn om groepen aan meerdere opleidingen te hangen. een "many to many" relatie zeg maar,

en ik weet niet precies hoe ik nu het best de sleutels in mekaar steek ?

iemand goede raad ?

Link naar reactie

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0

De beste oplossing is om een tussentabel te maken (jointable) met twee foreign keys, van beide tabellen één (bevat alle sleutelvelden die de primary key vormen). Het voordeel hiervan is dat deze gebruikt kan worden in summaryreports en dat je in dit tabel nog additionele velden kan opnemen die gegevens bevatten over de samenhang tussen beide entiteiten. Dit kan bijvoorbeeld niet als je gebruik zou maken van Multivalued keys. (Meerdere gegevens per veld gescheiden door een 'return' aan de kant van de primary key.

 

(Zie plaatje)

afbeelding_2_165.png.6242cdf187358aabe8f78ee13edea19f.png

Link naar reactie
  • 0

Ik begrijp het principe van een join table, maar ik snap niet hoe het dan met de portals moet. Op het werk werk ik mee aan het beheer van een machinepark. De administratie gebeurt met FileMaker. Echter op dit moment gebruiken we multikey velden, vooral omdat we nog met FM 6.0 werken. We gaan echter updaten naar FM 8.5 (ik weet het, we lopen achter, maar zo gaat dat eenmaal...).

 

Concreet wordt er dus bij de aankoop van een machine een record aangemaakt in de tabel Machines. Elke machine heeft echter meerdere dossiers, en ook omgekeerd kunnen dossiers gebruikt worden voor meerdere machines. Een many to many relatie is dus nodig.

 

Op zich snap ik het principe wel, maar ik weet niet hoe het dan met de portals moet. Stel ik heb een layout op de tabel van de machines, waar ik naast de informatie over de machine ook wil zien welke dossiers er bij deze machine horen. Ik maak dan een portal aan, maar laat ik die portal kijken naar de tabel van de dossiers, of naar de join table? Ik wil namelijk meer laten zien dan enkel de primary key... ook de benaming van het dossier, de verantwoordelijke en locatie moeten verschijnen en deze data is enkel voor handen in de tabel "dossiers".

 

Waarschijnlijk een niet zo een moeilijke vraag, maar ik worstel er mee.

Link naar reactie
  • 0

Nog even een verduidelijking.

 

Ik heb een screenshot toegevoegd, om te laten zien hoe ik mijn relaties heb opgesteld. Feedback hierover is altijd welkom. Het is dus de bedoeling om:

 

- Vanuit de layout op mac_machines te kunnen kijken welke dossiers er gelinked zijn aan de machine.

 

- Vanuit de layout op mac_dossiers te kunnen kijken welke machines er aan het dossier gelinked zijn.

 

Moest iemand mij kunnen helpen... zou leuk zijn.

 

Kloppen trouwens mijn codes (_k1, _k2, ...)? Ik ben een leek in FM, maar zou toch graag georganiseerd leren programmeren.

 

Groetjes

 

Andries

5a758dc7d7f80_relatiesdossierbeheer.JPG.0ff255fd64d84bfd35b3ca15e1b64540.JPG

Link naar reactie
  • 0

Dit wordt hier stilletjes aan enkel een item voor mezelf... als het stoort dat er zoveel posts van dezelfde persoon achter elkaar komen, laat maar weten... Ik heb als attachement de test file waar ik mee aan het experimenteren ben toegevoegd, kwestie dat het makkelijker is om te weten waar ik het over heb.

 

Ik heb iig ondertussen kunnen oplossen dat ik via de portals de juiste data zie. Er is echter een probleem. In ons huidig systeem is het zo dat voor elke machine een apart dossier wordt gemaakt in de tabel "dossiers" ook al bestaat er fysiek maar 1 dossier voor meerdere dossiers. Dit leidt tot een onoverzichtelijke tabel "dossiers". Daarom wil ik dus gebruik maken van de join table (wat in mijn leek opinie ook de enige juiste methode is), waar dus de dossiers aan de machines en vice versa worden gelinked.

 

Wat ik dus eigenlijk wil is dat als een machine wordt aangemaakt, bestaande dossiers gewoon kunnen worden toegevoegd, zonder dat er in de tabel "dossiers" een extra record wordt aangemaakt. Dit kan volgens mij via de join table, waar ik dus een extra record aanmaak, die de link vastlegt.

 

Wat ik heb gedaan is een layout op de mac_lnk_mac_dos aangemaakt, waar de label van de machine gelinkt wordt met de label van het dossier (deze layout kan geopend worden via de + knop in de layout dossierbeheer). Dan vult hij automatisch de gegevens in van de machine, en zou het de bedoeling zijn dat via een value list al de bestaande dossiers worden weergegeven, en dat ze aangeklikt kunnen worden. En hier zit het probleem. Als ik tussen de relatie mac_lnk_mac_dos en mac_dossiers aanduidt "allow creation..." en ik vul het label van het dossier in, creeert hij toch een nieuw record in de tabel "dossiers". Als ik het afvink kan ik in de layout het niet meer aanduiden... Als ik dit heb gevonden, denk ik dat mijn probleem is opgelost, en hoop ik dat we dit kunnen implementeren in ons bestaand systeem.

 

Ik hoop dat mijn uitleg een beetje duidelijk is...

 

Groetjes

 

Andries

dossierbeher.fp7

Link naar reactie
  • 0
Dit wordt hier stilletjes aan enkel een item voor mezelf... Als het stoort dat er zoveel posts van dezelfde persoon achter elkaar komen, laat maar weten...

Ai... dat heb ik ook al meegemaakt hier op dit forum...

http://www.clarify.net/viewtopic.php?p=32524#32524 ... een hele dagboek heb ik daar staan :lol:

Gelukkig ben ik er toen zelf op eigen krachten uit geraakt ...

Ik zou je post wel graag doornemen maar ik ben zelf niet zo'n held en de tijd ontbreekt me... Dat laatste zal overal zo wel een beetje het probleem zijn denk ik... Succes ermee!

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...