Ga naar inhoud
  • 0

Dubbele contactpersonen


Johnny

Vraag

Geplaatst:

In een database heb ik de tabel organisaties en de tabel contactpersonen. Elke organisatie kan veel contactpersonen hebben. Deze zijn aan elkaar gekoppeld met een waarde in het veldje OrgID. Als ik een organisatie open dan zie ik in het portaal keurig de contactpersonen staan. So far so good.

 

Het komt echter steeds vaker voor dat een ingevoerde contactpersoon in organisatie A ook werkzaam is in organisatie B. Dubbele invoer dus: als ik contactpersoon Jansen opzoek, bijvoorbeeld, kom ik hem of haar 2x tegen. Ik wil dat graag veranderen.

 

Gewenste situatie: als ik een contactpersoon invoer wil ik:

a. weten of deze contactpersoon al is ingevoerd en

b. gebruik maken van de reeds ingevoerde contactpersoon, geen dubbelingen dus.

c. Het zou mooi zijn als ik de lijst met organisaties inzie, contactpersoon Jansen zowel bij organisatie A als organisatie B zien staan.

d. Helemaal mooi zou zijn als ik Jansen als contactpersoon open, ik zie in welke organisatie hij of zij werkzaam is.

 

Pffff, ga d'r maar aan staan, ik zit dan met multikey in m'n hoofd, een derde (hulp)tabel, maar ik mis mijn startpunt. Wie helpt me op weg?

8 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

Er was ergens al een draadje open ivm dubbele namen/adressen

 

Hierin zijn twee zaken belangrijk

- is het naam veld één veld of is er een verschil tussen voor en achternaam?

- om te controleren of een naam al bestaat vergelijk je niet de namen zelf, maar een berekend veld dat het volgende met de naam doet:

•Allemaal hoofdletter

•Geen spaties

•Trim

•Indien voor en achternaam controleer ook de combinatie voor achternaam en achter voornaam

  • 0
Geplaatst:

Voer een globaal in waar je de naam invoert en een overzicht veld met alle namen die er aan voldoen (bv naam adres wp) als jouw naam niet voorkomt maak je een nieuw contact persoon aan en voor je de gegevens in.

Als hij van meerdere instanties lid is voer je de tweede instantie ook in en bij een zoekopdracht van die ene instantie zal hij te voorschijn komen en bij de zoekopdracht van de tweede instantie idem. Als je naar de persoon kijkt zie je dat hij 2 instanties lid is.

Er zijn vele manieren zoek eens in de voorbeelden hier zit vast iets tussen.Ik zie dat er al een reactie is en als aanvulling hierop zorg dat je een global field maakt wat overeenkomt met een verzamel veld. (naam en woonplaatsbv )

  • 0
Geplaatst:
Als hij van meerdere instanties lid is voer je de tweede instantie ook in en bij een zoekopdracht van die ene instantie zal hij te voorschijn komen en bij de zoekopdracht van de tweede instantie idem. Als je naar de persoon kijkt zie je dat hij 2 instanties lid is.

 

Precies, dat is wat ik wil bereiken... en hoe doe je dat? Multikey? Derde tabel? Ik heb nu Organisaties en Contactpersonen, verbonden het OrgID als match.

 

Johnny

  • 0
Geplaatst:

Een derde tabel lijkt me in dit geval het handigst. Deze tabel bevat voor elke voorkomende combinatie organisatie-contactpersoon zowel de ID van de organisatie als die van de contactpersoon, middels een portal in bijvoorbeeld contactpersonen kun je kijken bij welke organisaties deze hoort of een portal in organisatie welke contactpersonen bij die organisatie hoort.

  • 0
Geplaatst:

Misschien een vreemde reactie maar mijn eerste vraag in deze zou eigenlijk moeten zijn voor wie is deze database en wat moet die bijhouden?

Als hij voor een organisatie is voor het bijhouden van zijn vrijwilligers dan zijn de vragen over meerdere organisaties niet erg interessant?

Als het voor een organisatie is die bestaat uit 4 onderdelen dan heb je dus maar max 4 ID enz enz.

Het is dus van belang waarvoor je een database wilt maken.

Stel je bent scretaris van een voetbal vereniging dan is dit 1 organisatie maar kan deze uit 4 afdelingen bestaan met ieder zijn eigen vrijwilligers waarbij vrijwilligers voor meerdere afdelingen inzetbaar zijn , ga zo maar door.

  • 0
Geplaatst:
Ik gebruik in die situatie meestal een multikey.

 

Als je in OrgID in de personentabel zet:

bedrijf1ID

bedrijf2ID

 

ben je al klaar. Door die enter ziet FM de beide ID's apart.

 

Multi key is misschien makkelijk maar is ook echt typish Filemaker.

Ik zou wel aanraden om een derde tabel te gebruiken mocht het ooit met een SQL database te communiceren. Daar hebben ze dat niet echt.

  • 0
Geplaatst:

Dit is natuurlijk een schoolvoorbeeld van een many-to-many relatie. Dus als je de handleidingen volgt zou je een tussentabel moeten maken waar je de relaties tussen personen en organisaties vastlegt.

 

Maar je moet ook praktisch zijn. Wat ook telt is:

- heeft de relatie tussen de organisatie en de persoon ook eigenschappen die je wilt vastleggen? Dus bijv. 'meneer A werkt bij bedrijf X' is de betekenis van de record in de tussentabel. Maar aan die betekenis kun je nog gegevens toevoegen zoals inkomen, soort arbeidsovereenkomst, datum in dienst. Is dat allemaal niet relevant, dan zou je ook de verwijzing naar extra werkgevers in een multi-key veld kunnen vastleggen.

- is het een groot probleem om een persoon meer dan 1 keer vast te leggen, dus in verschillende hoedanigheden. Een oplossing kan ook zijn dat je beide personen wel via een soort key aan elkaar koppelt, zodat je de adresgegevens bijv. gelijk kunt houden.

 

De meest flexibele en 'juiste' oplossing is een tussentabel, maar die is ook bewerkelijk en misschien overkill als dubbele personen niet veel voorkomen.

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...