Reserveringstabel
Hallo allemaal!
Ik moet een reservering pagina maken voor een klant die tennisbanen verhuurt.
Er zitten een aantal eisen in waarbij ik niet weet hoe ik die aan moet pakken dus ik hoop dat jullie mij kunnen helpen :)
Het gaat erom dat een baan voor een half uur gereserveerd kan worden, tot van 12:00 tot 20:30. Ook mag een baan niet twee keer op eenzelfde tijdstip verhuurd worden, wat logisch is.
Nu heb ik twee tabellen:
baan
- id
- naam
Verder volgens mij niks aan toe te voegen. De reden dat ik deze maak is omdat de klant zijn banen wil beheren.
reservering
- id
- datum
- tijd
- naw gegevens
- baan_id
Nu weet ik niet eens of dit wel goed is, maar het gaat mij er meer om hoe ik al die tijden ga verwerken. Want het gaat om 17 verschillende tijdstippen, per dag.
Waar ik aan dacht is dat hij, als iemand een datum klikt, kijkt in een array welke tijden er nog beschikbaar zijn oid, maar waar zou hij de tijden vandaan moeten halen? Moet ik een extra tabel met alle tijd variaties maken? Nee toch? Dat moet makkelijker kunnen lijkt me.
Wat ik in mijn hoofd heb is dus dat er een datum wordt gekozen, en er dan een lijst komt met beschikbare tijdstippen voor die dag. Als een bepaalde tijdstip 8x gekozen is (8 banen), dan moet hij uit de lijst.
Ik hoop dat jullie me kunnen helpen!
Het gaat alleen maar om de database opbouw, de rest vind ik zelf wel uit :)
Ik moet een reservering pagina maken voor een klant die tennisbanen verhuurt.
Er zitten een aantal eisen in waarbij ik niet weet hoe ik die aan moet pakken dus ik hoop dat jullie mij kunnen helpen :)
Het gaat erom dat een baan voor een half uur gereserveerd kan worden, tot van 12:00 tot 20:30. Ook mag een baan niet twee keer op eenzelfde tijdstip verhuurd worden, wat logisch is.
Nu heb ik twee tabellen:
baan
- id
- naam
Verder volgens mij niks aan toe te voegen. De reden dat ik deze maak is omdat de klant zijn banen wil beheren.
reservering
- id
- datum
- tijd
- naw gegevens
- baan_id
Nu weet ik niet eens of dit wel goed is, maar het gaat mij er meer om hoe ik al die tijden ga verwerken. Want het gaat om 17 verschillende tijdstippen, per dag.
Waar ik aan dacht is dat hij, als iemand een datum klikt, kijkt in een array welke tijden er nog beschikbaar zijn oid, maar waar zou hij de tijden vandaan moeten halen? Moet ik een extra tabel met alle tijd variaties maken? Nee toch? Dat moet makkelijker kunnen lijkt me.
Wat ik in mijn hoofd heb is dus dat er een datum wordt gekozen, en er dan een lijst komt met beschikbare tijdstippen voor die dag. Als een bepaalde tijdstip 8x gekozen is (8 banen), dan moet hij uit de lijst.
Ik hoop dat jullie me kunnen helpen!
Het gaat alleen maar om de database opbouw, de rest vind ik zelf wel uit :)
Een extra tabel aanmaken met alle (standaard)tijden lijkt me overbodig. Je weet immers dat iedere baan van 12.00 - 20.30 beschikbaar is.
Wat je wel kunt doen is dat je niet met tijden werkt maar de tijden aan een periode koppelt. Dat werkt wellicht makkelijker voor je.
Dus:
12.00 - 12.30 is periode 1
12.30 - 13.00 is periode 2
etc.
Dan kun je gewoon een integer in de database invoeren bij tijd of periode.
Vervolgens maak je gewoon per baan een lijst <ul> met 17 elementen <li> (of een table) en voeg je daar tijdens het echoen eventuele reserveringen aan toe.
Wat je wel kunt doen is dat je niet met tijden werkt maar de tijden aan een periode koppelt. Dat werkt wellicht makkelijker voor je.
Dus:
12.00 - 12.30 is periode 1
12.30 - 13.00 is periode 2
etc.
Dan kun je gewoon een integer in de database invoeren bij tijd of periode.
Vervolgens maak je gewoon per baan een lijst <ul> met 17 elementen <li> (of een table) en voeg je daar tijdens het echoen eventuele reserveringen aan toe.
Gewijzigd op 12/01/2011 21:54:58 door The Ultimate
Bedankt voor je reactie.
Maar hoe weet het script dan wat een 6 is bij tijd? Dat moet dan toch via een ander tabel vergeleken worden met het eraan gekoppelde tijdstip?
Maar hoe weet het script dan wat een 6 is bij tijd? Dat moet dan toch via een ander tabel vergeleken worden met het eraan gekoppelde tijdstip?
De tijden koppel je er pas aan op het moment dat je de reserveringstabel weergeeft en is puur een kwestie van weergave. De database hoeft toch niet te weten dat periode 6 van 14.30 tot 15.00 uur duurt? De database hoeft enkel te weten dat periode 6 op baan x bezet is.
Als je nou een pagina maakt met:
Etc. En die dan include? En dat je via de db kijkt of 'tijd' 6 nog vrij is en dan dat laten vergelijken met hierboven?
(ik zit op een ipad dus duidelijk weergeven wat ik bedoel gaat niet sorry...)
Edit: the ultimate was me voor.
Toevoeging op 12/01/2011 23:29:44:
Ik zat nog even te denken.
Als je nu de tijds periode verdeeld en de baan nummers geeft, die in db stoppen.
Dat dmv een mysql query Update de baan status van open = o naar gesloten = # te zetten.
En voordat je dat doet dmv een
if (status != #)
{zet baan op verhuurd}
Else
{ Heelaas is de baan verhuurd.}
Etc. En die dan include? En dat je via de db kijkt of 'tijd' 6 nog vrij is en dan dat laten vergelijken met hierboven?
(ik zit op een ipad dus duidelijk weergeven wat ik bedoel gaat niet sorry...)
Edit: the ultimate was me voor.
Toevoeging op 12/01/2011 23:29:44:
Ik zat nog even te denken.
Als je nu de tijds periode verdeeld en de baan nummers geeft, die in db stoppen.
Dat dmv een mysql query Update de baan status van open = o naar gesloten = # te zetten.
En voordat je dat doet dmv een
if (status != #)
{zet baan op verhuurd}
Else
{ Heelaas is de baan verhuurd.}
Gewijzigd op 12/01/2011 23:13:10 door Ocirina Ocirina
Hey OoT, thanks :) Echter snap ik nog niet helemaal wat je bedoelt. Ik snap je bedoeling om een baan op gesloten te zetten, maar de eerste zin begrijp ik niet helemaal. De banen hebben al nummers, hun id. En ik was al van plan om de tijd periodes te verdelen (door de reactie van The Ultimate).
Maar bedankt voor je input! :)
Toevoeging op 13/01/2011 08:52:52:
Nog even een vraag: in welk tabel moet ik verwerken of een baan beschikbaar is of niet? En als er dus een reservering is gemaakt voor een bepaalde datum en tijdstip, waar moet ik dan aangeven dat die baan op dat tijdstip gereserveerd is (want er moet geteld worden wanneer de 8 is bereikt, toch?).
Maar bedankt voor je input! :)
Toevoeging op 13/01/2011 08:52:52:
Nog even een vraag: in welk tabel moet ik verwerken of een baan beschikbaar is of niet? En als er dus een reservering is gemaakt voor een bepaalde datum en tijdstip, waar moet ik dan aangeven dat die baan op dat tijdstip gereserveerd is (want er moet geteld worden wanneer de 8 is bereikt, toch?).
Kijk, ik bedoel dit:
Je hebt een db. die heeft 8 banen,
ze hebbel allemaal id dus: bid1 bid2 bid3.
Dan maak je dus 17 periodes per baan, en zet je die allemaal op O = OPEN.
Dan doe je select bid, periode from banen WHERE bid = '$INPUT gevraagde baannr.' AND periode = '$inpute gevraagde periode'
En die heeft dan of de waarde O =open of - = gesloten.
Dan controleer je die waardes dmv php of die gereserveerd is of niet.
Toevoeging op 13/01/2011 10:24:45:
Zoiets heb ik in gedachte, het kan simpeler maar dit werkt gewoon goed.
Je hebt een db. die heeft 8 banen,
ze hebbel allemaal id dus: bid1 bid2 bid3.
Dan maak je dus 17 periodes per baan, en zet je die allemaal op O = OPEN.
Dan doe je select bid, periode from banen WHERE bid = '$INPUT gevraagde baannr.' AND periode = '$inpute gevraagde periode'
En die heeft dan of de waarde O =open of - = gesloten.
Dan controleer je die waardes dmv php of die gereserveerd is of niet.
Code (php)
Toevoeging op 13/01/2011 10:24:45:
Zoiets heb ik in gedachte, het kan simpeler maar dit werkt gewoon goed.
Gewijzigd op 13/01/2011 10:24:05 door Ocirina Ocirina
Thanks :)Echter heeft de klant ineens om nieuwe eisen gevraagd, dus ik moet het even anders indenken....
Er moet gezegd worden welke datum en tijd er gereserveerd moet worden. Dan moet er een overzicht gegenereerd worden met alle banen en de tijdstippen onder elkaar, als een soort van tabel. Dan hoeft de gebruiker maar 1x te klikken op de gewenste baan/tijdstip om te reserveren.
Maar in principe kan ik hier dezelfde db opzet mee gebruiken, toch?
Er moet gezegd worden welke datum en tijd er gereserveerd moet worden. Dan moet er een overzicht gegenereerd worden met alle banen en de tijdstippen onder elkaar, als een soort van tabel. Dan hoeft de gebruiker maar 1x te klikken op de gewenste baan/tijdstip om te reserveren.
Maar in principe kan ik hier dezelfde db opzet mee gebruiken, toch?
Jij moet even een soort kalender maken.
Dan klikt die persoon op die datum, dan verschijnt er een nieuw pagina met de vrije tijden.
Precies met dezelfde opzet. Alleen is de manieer van het controleren of die vrij is iets veranderd. Dmv een get of een post functie stuur je dit door naar de controle pagina of die vrij is. Zo ja dan laat je hem reserveren begrijp je?
Ik heb het wel duidelijk in mijn hoofd maar ik weet niet of ik het je zo duidelijk maak.
Dan klikt die persoon op die datum, dan verschijnt er een nieuw pagina met de vrije tijden.
Precies met dezelfde opzet. Alleen is de manieer van het controleren of die vrij is iets veranderd. Dmv een get of een post functie stuur je dit door naar de controle pagina of die vrij is. Zo ja dan laat je hem reserveren begrijp je?
Ik heb het wel duidelijk in mijn hoofd maar ik weet niet of ik het je zo duidelijk maak.
Ja zo had ik het ook ongeveer in mijn hoofd, maar toch bedankt!!
Je kan bijvoorbeeld een vast raster maken van een week, Ma t/m Zo. Je hebt dan 7 dagen en per dag heb je 8 tijdstippen. Je kan dan kenmerken creeeren Op basis van 1e dag 1e tijdstip = 11 en vervolgens 12,13,.....18 en idem voor dag 2: 21,22,23,.....28 en dit dan visueel in kleurtjes (dus niet de codes) weer te geven in een matrix met de bezette tijden rood en de vrije tijden groen. Ik neem aan dat geen persoonsnamen gaat publiceren. Verder kan het helemaal geen kwaad om een referentie tabelletje te maken met tijdstippen en codes, een lookup tabel. Dat is altijd beter en sneller dan je een slag in de rondte rekenen in php.
Gewijzigd op 13/01/2011 14:44:02 door John D




