create table timetable( work_date date, tech_id int,
block_1_firsthalf_start_time datetime, block_1_end_time datetime,
block_2_secondhalf_start_time datetime, block_2_end_time datetime,
block_3_over_time datetime, block_3_over_end_time datetime,
block_4_first_break_start_time datetime, block_4_first_break_end_time datetime,
block_5_second_break_start_time datetime, block_5_second_break_end_time datetime)
insert into timetable values(
"8/6/2013", 1,
"8/6/13 6:00 AM", "8/6/13 10:00 AM",
"8/6/13 11:00 AM", "8/6/13 6:00 PM",
"8/6/13 6:30 PM", "8/6/13 8:00 PM"
"8/6/13 7:00 AM", "8/6/13 8:00 AM",
"8/6/13 5:00 PM", "8/6/13 5:30 PM")
ďalšia tabuľka:
create table jobtable(tech_id int,Job_starting_time datetime, Job_end_time datetime)
insert into jobtable values(1, "8/6/13 7:00 AM","8/6/13 8:00 AM")
Teraz je potrebné nájsť voľný čas za deň, akým je zamestnanec.pl, ako to dokážeme.
odpovede:
0 pre odpoveď č. 1Vaša dátová štruktúra by mala byť normalizovaná na zoznam blokov / úloh
TechID StartDateTime EndDateTime
1 2013-6-8 06:00 2013-6-8 10:00
1 2013-6-8 11:00 2013-6-8 18:00
...
Potom je oveľa jednoduchšie nájsť bloky času, ktoré sa nepretínajú s existujúcimi údajmi a nebudete obmedzovať svoje technológie na obmedzený počet časových úsekov pre každý deň.