Inhoud

Gegevens koppelen

In de klanttabel slaan we klantgegevens op, maar we moeten voor het klantcontactsysteem ook contactmomenten opslaan. Een contactmoment ontstaat wanneer een klant belt, e-mailt of een brief schrijft.

Je zou misschien bedenken om de datum en een beschrijving van het contactmoment in de klanttabel op te slaan bij de juiste klant. Dat kan echter niet. Het klantnummer moet uniek zijn in de klantnummerkolom. Er mag dus altijd maar 1 rij per klant zijn in de klanttabel. Je zou nog alle contactmomenten in 1 cel kunnen opslaan op dezelfde rij als de klantgegevens (als een soort flat file in 1 cel), maar dat is absoluut niet wenselijk, omdat het dan heel moeilijk wordt om door de contactmomenten te zoeken. (Nb. later in deze cursus databases worden de regels voor goed database-ontwerp op een rij gezet).

Conclusie: we moeten een nieuwe tabel maken voor contactmomenten. Eerst bepalen we wat we allemaal van een contactmoment willen opslaan.

  • contactmoment_id(primaire sleutel)
  • klantnummer(zodat het contactmoment aan één klant gekoppeld is)
  • Datumentijd
  • Eenbeschrijvingvan het contactmoment (Inhoud telefoongesprek, inhoud e-mail, inhoud brief, etc)
  • Nam het bedrijf contact op met de klant of andersom?:inkomend_uitgaand
  • Communicatietype (telefoon, e-mail, fax):com_type

Hieronder staat een conceptversie van de contactmomententabel. Later in dezecursus database ontwerpenbekijken we onderstaande tabel nog eens kritisch aan de hand van de ontwerpregels voor relationele databases.

Cursus

Op elke rij van de contactmomententabel staat informatie over een uniek contactmoment. Elk contactmoment is uniek identificeerbaar doorde primaire sleutel, hetcontactmoment_id(eerste kolom). Bovendien is elk contactmoment gekoppeld aan een klant uit de klanttabel door middel van hetklantnummerin de tweede kolom.

Met behulp van het klantnummer kunnen bij elke klant in de klanttabel de contactmomenten opgezocht worden en andersom bij elk contactmoment de betreffende klant uit de klanttabel. Er is hier sprake van een '1 op veel' relatie tussen de klant en zijn of haar contactmomenten.

Nu je een voorbeeld gezien hebt van een database is het tijd om in te gaan op de relaties die kunnen bestaan tussen tabellen. Het voorbeeld van de klanttabel en de contactmomententabel is een 'één op veel relatie'. Voor elke klant (1) kunnen meerdere (veel) contactmomenten opgeslagen zijn. Bij het ontwerpen van relationele databases onderscheiden we 3 soorten relaties tussen tabellen.

  • Deéén op veelrelatie
  • Deveel op veelrelatie
  • Deéén op éénrelatie