[Acces97]Normaliseren van gegevens mbt boeken afspraak

Pagina: 1
Acties:

  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Ik heb geprobeert gegevens te normaliseren, maar ik weet niet of ik helemaal goed bezig ben!?

Ik heb de volgende twee databases:
Database met ‘Gebruikers’
Database met ‘Spreekkamers’

Dan nu de opdracht:
Klantmanagers kunnen afspraken met clienten boeken op een datum en tijdstip en tevens op kamernummer.

Er zijn enige voorwaarden verbonden:

-Gebruikers mogen niet twee keer op dezelfde datum en tijdstip boeken.
-Spreekkamers mogen maar een keer geboekt worden op een tijdstip.

Uiteindelijk moet de ‘Query’ er zo uit gaan zien:

ID Manager Datum Tijd Client Spreekkamer
100 Raymond 11-04-03 14:00 De Vries 304
200 Ilker 11-04-03 14:00 De Boer 306


Dit is het normalisatie schema:

Klantmanagers:
KlantmanagerID
KlantmanagerNaam

Spreekkamers:
SpreekkamersID
SpreekkamersNummer

Afspraken:
AfsprakenID
WINnummer
Clientnaam
Adres
Huisnummer
Telefoon
Telefoon2
Datumgepland
Medewerker
Opmerking

Reserveringen:
ReserveringenID
KlantmanagerID
SpreekkamersID
AfsprakenID
Datum
Tijd
Spreekkamer

Is het zo goed, of moet het anders..........

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


Verwijderd

Zijn er spreekkamers met hetzelfde nummer?

Anders kan je het nummer gewoon als ID gebruiken (uiteraard primary key). Wat houdt de Spreekkamer in Reserveringen overigens in?

  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Verwijderd schreef op 11 April 2003 @ 12:53:
Zijn er spreekkamers met hetzelfde nummer?

Anders kan je het nummer gewoon als ID gebruiken (uiteraard primary key). Wat houdt de Spreekkamer in Reserveringen overigens in?
Er zijn geen spreekkamers met hetzelfde nummer, ze zijn genummerd van 1 tot 9.......

Spreekkamer in Reserveringen wordt gevuld via een combo box in een form die gelinkt is naar SpreekkamersNummer.

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


Verwijderd

Dan krijg je nu dus in de tabel Spreekkamers altijd een 1 op 1 relatie.

Kortom maak van het nr gewoon het ID. Dan zou je alleen een tabel krijgen met ID's erin.

Vervolgens link je vanuit de tabel Reserveringen naar dat nr. Als het goed is kom je dan tot de conclusie dat je nog niet ver genoeg genormaliseerd hebt en gooi je dus die hele tabel weg en haal je het ook uit de tabel reserveringen (je hebt spreekkamer daar al).

Doe dit alleen als je zeker weet dat je geen andere eigenschappen over een spreekkamer bij wil houden (aantal mensen dat erin kan, openingstijden o.i.d.), anders moet je namelijk alsnog de tabel aanmaken.
Verder ben ik nooit echt blij met namen in een tabel die gelijk zijn aan de naam van een andere tabel. In SQL zie je het onderscheid wel, alleen het kan enorm verwarrend werken.
Damn lees gewoon een s achter spreekkamer, daar waar die niet staat :o

[ Voor 5% gewijzigd door Verwijderd op 11-04-2003 13:08 ]


  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Verwijderd schreef op 11 april 2003 @ 13:03:
Doe dit alleen als je zeker weet dat je geen andere eigenschappen over een spreekkamer bij wil houden (aantal mensen dat erin kan, openingstijden o.i.d.), anders moet je namelijk alsnog de tabel aanmaken.
Dit is definitief niet aan de orde, dus daar hoef ik niet op te letten ;)

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Typo!

[ Voor 100% gewijzigd door Ruidasilva op 11-04-2003 13:25 ]

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


Verwijderd

Overigens zou ik de persoonsgegevens wel loskoppelen van de afspraak.

Maak dus een tabel Personen. Ten eerste is dat duidelijker (welliswaar niet helemaal genormaliseerd) en ten tweede kan je dan de Manager ook gewoon naar die persoon koppelen, waardoor je het veld KlantManagerNaam weg kan laten, en zodoende dus ook meer info over de manager kan bijhouden als je wil.

Tot slot neem ik aan dat het mogelijk is om in 1 reserveringafspraak meerdere afspraken reserveringen te maken?
Als dat niet zo is, dan kunnen die tabellen sowieso bij elkaar natuurlijk.
edit:

Als dat wel zo is, dan is de tabel nog niet helemaal genormaliseerd


Verder is het even geleden dat ik met Acces gewerkt heb, maar ik neem aan dat het een fatsoenlijke mogelijkheid biedt tot het opslaan van de datum/tijd in 1 veld.

[ Voor 9% gewijzigd door Verwijderd op 11-04-2003 13:22 ]


  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Verwijderd schreef op 11 April 2003 @ 13:16:
Tot slot neem ik aan dat het mogelijk is om in 1 afspraak meerdere reserveringen te maken?
Als dat niet zo is, dan kunnen die tabellen sowieso bij elkaar natuurlijk.
Nee, je maakt 1 reservering per afspraak.
Verder is het even geleden dat ik met Acces gewerkt heb, maar ik neem aan dat het een fatsoenlijke mogelijkheid biedt tot het opslaan van de datum/tijd in 1 veld.
Ja, dit is mogelijk!

Ik kom nu hier op:

Klantmanagers:
KlantmanagerID
KlantmanagerNaam

Afspraken:
AfsprakenID
WINnummer
Datumgepland
Medewerker
Opmerking

Persoonsgegevens:
WINnummer
Clientnaam
Adres
Huisnummer
Telefoon
Telefoon2

Reserveringen:
ReserveringenID
KlantmanagerID
SpreekkamersID
AfsprakenID
Datum
Tijd
Spreekkamer

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


Verwijderd

Yupz, foutje van mijn kan, wat ik inmiddels verbeterd had.

Vraagje. Moet het zo ver mogelijk genormaliseerd worden of wil je enigszins flexibel blijven voor toekomstige veranderingen (bijvoorbeeld de mogelijkheid tot reservering van meerdere afspraken etc.)?

Als Reservering<->Afspraak altijd een 1 op 1 relatie is dit netzoals de aparte persoonsgegevens natuurlijk niet helemaal genormaliseerd.

  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Verwijderd schreef op 11 April 2003 @ 13:29:
Yupz, foutje van mijn kan, wat ik inmiddels verbeterd had.

Vraagje. Moet het zo ver mogelijk genormaliseerd worden of wil je enigszins flexibel blijven voor toekomstige veranderingen (bijvoorbeeld de mogelijkheid tot reservering van meerdere afspraken etc.)?

Als Reservering<->Afspraak altijd een 1 op 1 relatie is dit netzoals de aparte persoonsgegevens natuurlijk niet helemaal genormaliseerd.
Het liefst zo ver mogelijk......
Wat moet er dan nog veranderd worden om helemaal te normaliseren!?

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


Verwijderd

Flexibeler:
Persoonsgegevens:
PersoonsID
Naam
Adres
Huisnummer
Telefoon
Telefoon2

Klantmanagers:
KlantmanagerID
PersoonsID

Reserveringen:
ReserveringenID
KlantmanagerID
AfsprakenID
Spreekkamer
Datum

Afspraken:
AfsprakenID
PersoonsID
Datumgepland
Medewerker
Opmerking
Genormaliseerd als er altijd afspraak op een reservering volgt:
Persoonsgegevens:
PersoonsID
Naam
Adres
Huisnummer
Telefoon
Telefoon2

Klantmanagers:
KlantmanagerID
PersoonsID

Afspraak:
AfspraakID
KlantmanagerID
PersoonsID
Spreekkamer
DatumReservering
DatumAfspraak
Medewerker
Opmerking
Wat is medewerker overigens? Alleen de naam van een medewerker? Anders kan je die ook weer gebruiken als een PersoonsID

  • Ruidasilva
  • Registratie: Mei 2002
  • Niet online

Ruidasilva

Funky & Creative

Topicstarter
Verwijderd schreef op 11 April 2003 @ 13:40:
Wat is medewerker overigens? Alleen de naam van een medewerker? Anders kan je die ook weer gebruiken als een PersoonsID
Dat is de persoon van de administratie die de afspraakt maakt voor klantmanager........

Maar ik kan iets anders zeggen, dat ik geweldig geholpen ben!!
Thanx _/-\o_

Music is no longer an expression of the soul or the work of an artist; it's a 'product' that is manufactured, packaged, catalogued, distributed, managed, regulated, and above all sold!


Verwijderd

Ur welcome :)

edit:
Let er wel op dat de flexibelere versie makkelijker is met de constraints die er zijn ;)
Zeker als je spreekkamer overhaalt van reservering naar afspraak.

[ Voor 87% gewijzigd door Verwijderd op 11-04-2003 13:56 ]


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 19-09 21:01

MBV

Welke normaalvorm wil je normaliseren? Als je de Boyce-Codd (spelling zal wel anders zijn, magoed) aanhoud, mag een veld niet transitief functioneel afhankelijk zijn van een ander veld, en dat soort afhankelijkheden zie ik al niet in je post op 'Friday 11 April 2003 13:24'.
Verder zou ik enkelvoudige tabelnamen gebruiken, wel zo netjes. Persoonsgegevens mag wel, geeft aan dat je van 1 persoon meerdere gegevens opslaat. Maar omdat je per veld maar 1 afspraak opslaat, is afspraken fout.
Tot zover de les Databases van v.d. Bosch ;)

[ Voor 3% gewijzigd door MBV op 11-04-2003 14:08 ]

Pagina: 1