Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
В первой таблице worker вообще непонятна зачем дата?
Есть сущность работник, есть сущность задача и в третьей таблице отмечаешь когда работник выполнил задачу, с указанием затраченных часов.
А решается не FK, а PK на третье таблице
create table worker ( id integer, name_worker varchar (40),hours float, date datetime);
create table tasks (id_task integer, task varchar (240));
create table worktime (id_worker integer, id_task integer, workday date, length_hours float);
ALTER TABLE `worker`
CHANGE COLUMN `id` `id` INT(11) NOT NULL ,
ADD PRIMARY KEY (`id`);
ALTER TABLE `tasks`
CHANGE COLUMN `id_task` `id_task` INT(11) NOT NULL ,
ADD PRIMARY KEY (`id_task`);
ALTER TABLE `worktime`
CHANGE COLUMN `id_worker` `id_worker` INT(11) NOT NULL ,
CHANGE COLUMN `id_task` `id_task` INT(11) NOT NULL ,
ADD PRIMARY KEY (`id_task`, `id_worker`);
ALTER TABLE `insta`.`worktime`
ADD CONSTRAINT `worker`
FOREIGN KEY (`id_worker`)
REFERENCES `worker` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
ADD CONSTRAINT `task`
FOREIGN KEY (`id_task`)
REFERENCES `tasks` (`id_task`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;