Hoi,
Ondanks de grote lap tekst is, is de vraag erg eenvoudig. Ik hoop dat jullie zin hebben om het even door te nemen.
Stel je voor dat je een applicatie aan het maken bent voor een helpdesk. De database moet onder andere klanten, incidenten en 'contactmomenten' opslaan. Een klant kan meerdere incidenten hebben (1 op veel relatie). Een incident bestaat uit 1 of meer contactmomenten (1 op veel relatie). Mijn vraag gaat over de contactmomententabel en meer specifiek het communicatietype-veld.
Het 'probleem' waar ik mee zit is dat ik in de applicatie alle mogelijke communicatietypes in een HTML dropdownmenu wil tonen aan de gebruiker. De gebruiker (helpdesker) kan een incident registeren en daarbij uit het dropdownlijstje selecteren hoe er gecommuniceerd is. Punt is dat ik met bovenstaande tabel nooit met zekerheid alle communicatietypes kan selecteren. Immers, alle communicatietypes moeten al in de tabel zitten voordat ik ze kan selecteren! Heb ik een compleet lege database, dan heb ik dus geen communicatietypes in mijn dropdownmenuutje.
De oplossing ligt voor de hand: het afsplitsen van communicatietypes. Ik zou dan zoiets maken.
Nu de hamvraag: hoe omschrijf je deze handeling volgens de databasetheorie? In feite splits ik nu een 1 op 1 relatie af, toch? Elk record uit de contactmomententabel is gekoppeld aan 1 record in de communicatietypestabel. En is dat wel de bedoeling als je je database strikt volgens de regels normaliseert? Ik vraag dit omdat ik dit modelletje gebruik als voorbeeld in een uitleg aan medestudenten...
Ondanks de grote lap tekst is, is de vraag erg eenvoudig. Ik hoop dat jullie zin hebben om het even door te nemen.
Stel je voor dat je een applicatie aan het maken bent voor een helpdesk. De database moet onder andere klanten, incidenten en 'contactmomenten' opslaan. Een klant kan meerdere incidenten hebben (1 op veel relatie). Een incident bestaat uit 1 of meer contactmomenten (1 op veel relatie). Mijn vraag gaat over de contactmomententabel en meer specifiek het communicatietype-veld.
Het communicatietype-veld geeft aan hoe er gecommuniceerd is. Dat kan bijvoorbeeld zijn via e-mail, per brief, per fax, per telefoon of in een live gesprek.contactmomenten
contactmoment_id (PK)
incident_id (FK) (koppeling aan incident)
datum
tijd
omschrijving (omschrijving van het contactmoment)
richting (inkomend of uitgaand)
communicatietype ('email', 'brief', 'fax', 'telefoon', etc)
Het 'probleem' waar ik mee zit is dat ik in de applicatie alle mogelijke communicatietypes in een HTML dropdownmenu wil tonen aan de gebruiker. De gebruiker (helpdesker) kan een incident registeren en daarbij uit het dropdownlijstje selecteren hoe er gecommuniceerd is. Punt is dat ik met bovenstaande tabel nooit met zekerheid alle communicatietypes kan selecteren. Immers, alle communicatietypes moeten al in de tabel zitten voordat ik ze kan selecteren! Heb ik een compleet lege database, dan heb ik dus geen communicatietypes in mijn dropdownmenuutje.
De oplossing ligt voor de hand: het afsplitsen van communicatietypes. Ik zou dan zoiets maken.
Nu kan ik vanuit mijn applicatie een query sturen die alle records in de communicatietypestabel pakt en daar kan ik mijn dropdownmenu mee vullen. Ik kan de mogelijke communicatietypes dus van te voren invoeren.contactmomenten
contactmoment_id (PK)
incident_id (FK)
datum
tijd
omschrijving
richting (inkomend of uitgaand)
communicatietype (FK)
communicatietypes
com_type_id (PK) (refereert aan communicatietype-veld)
omschrijving (e-mail, fax, telefoon, etc, etc)
Nu de hamvraag: hoe omschrijf je deze handeling volgens de databasetheorie? In feite splits ik nu een 1 op 1 relatie af, toch? Elk record uit de contactmomententabel is gekoppeld aan 1 record in de communicatietypestabel. En is dat wel de bedoeling als je je database strikt volgens de regels normaliseert? Ik vraag dit omdat ik dit modelletje gebruik als voorbeeld in een uitleg aan medestudenten...