Ik zit met een probleem waar ik niet helemaal uitkom.
Wat ik wil bereiken is een webapplicatie d.m.v php en mysql waarin een aantal vaste users aan kan geven in een rooster welke uren van welke dagen ze beschikbaar zijn. Vervolgens wil ik als de laatste user zich heeft ingeschreven kunnen berekenen welke tijden alle users beschikbaar zijn, eventueel met een minimum aantal van uren die overlappen.
Ter verduidelijking - een toepassing zou bijvoorbeeld een groep mensen die een vergadering moeten plannen ergens in de week, en die vergadering moet minimaal 2 uur duren. Iedereen logt in en geeft op wanneer hij kan, en het systeem geeft aan welke mogelijke dagen/tijdstippen er zijn.
Waar ik niet uitkom is hoe ik de gegevens precies in de database op moet slaan opdat ik efficient de overlappende tijdstippen uit kan rekenen. Een oplossing die ik had bedacht was dat ik een tabel kan maken met bijvoorbeeld een kolom voor ieder uur van de dag, en dan als index voor de rij de datum. De waarde in iedere kolom zou dan een 1 van beschikbaar of een 0 van niet beschikbaar zijn.
Echter sla ik natuurlijk liever alleen de begin- en eindtijd van de intervallen op waarbinnen een user tijd heeft, en reken aan de hand daarvan uit wanneer iedereen kan. Dit omdat zo de database een stuk kleiner wordt, en ik eigenlijk ook niet alleen op het uur de beschikbaar vast wil leggen, maar per kwartier (user is beschikbaar van 14.15 tot 18.30 bijvoorbeeld). Probleem hier is dat het me niet helemaal lukt om een manier te bedenken waarop ik dan de overlappingen kan berekenen. Ik kan wel iets bedenken dat de hoogste begintijd minimaal 2 uur moet verschillen met de laagste eindtijd, maar het moet natuurlijk ook mogelijk zijn om meer dan 1 interval per dag aan te geven (user kan van 9 tot 11 en van 16 tot 18).
Heeft wellicht iemand een idee wat een handige manier zou zijn om dit aan te pakken?
Wat ik wil bereiken is een webapplicatie d.m.v php en mysql waarin een aantal vaste users aan kan geven in een rooster welke uren van welke dagen ze beschikbaar zijn. Vervolgens wil ik als de laatste user zich heeft ingeschreven kunnen berekenen welke tijden alle users beschikbaar zijn, eventueel met een minimum aantal van uren die overlappen.
Ter verduidelijking - een toepassing zou bijvoorbeeld een groep mensen die een vergadering moeten plannen ergens in de week, en die vergadering moet minimaal 2 uur duren. Iedereen logt in en geeft op wanneer hij kan, en het systeem geeft aan welke mogelijke dagen/tijdstippen er zijn.
Waar ik niet uitkom is hoe ik de gegevens precies in de database op moet slaan opdat ik efficient de overlappende tijdstippen uit kan rekenen. Een oplossing die ik had bedacht was dat ik een tabel kan maken met bijvoorbeeld een kolom voor ieder uur van de dag, en dan als index voor de rij de datum. De waarde in iedere kolom zou dan een 1 van beschikbaar of een 0 van niet beschikbaar zijn.
Echter sla ik natuurlijk liever alleen de begin- en eindtijd van de intervallen op waarbinnen een user tijd heeft, en reken aan de hand daarvan uit wanneer iedereen kan. Dit omdat zo de database een stuk kleiner wordt, en ik eigenlijk ook niet alleen op het uur de beschikbaar vast wil leggen, maar per kwartier (user is beschikbaar van 14.15 tot 18.30 bijvoorbeeld). Probleem hier is dat het me niet helemaal lukt om een manier te bedenken waarop ik dan de overlappingen kan berekenen. Ik kan wel iets bedenken dat de hoogste begintijd minimaal 2 uur moet verschillen met de laagste eindtijd, maar het moet natuurlijk ook mogelijk zijn om meer dan 1 interval per dag aan te geven (user kan van 9 tot 11 en van 16 tot 18).
Heeft wellicht iemand een idee wat een handige manier zou zijn om dit aan te pakken?