Jump to content
  • 0

Dubbele contactpersonen


Johnny

Question

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?

Link to comment

8 answers to this question

Recommended Posts

  • 0

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

Link to comment
  • 0

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 )

Link to comment
  • 0
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

Link to comment
  • 0

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.

Link to comment
  • 0

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.

Link to comment
  • 0
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.

Link to comment
  • 0

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.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...