Modelo relacional - Dúvida

Este é o enunciado :
Cada funcionário de uma determinada empresa tem no máximo uma competência
reconhecida contudo, vários funcionários podem ter a mesma competência. Um
empregado é capaz de operar numa determinada máquina (por exemplo, torno,
amolador) se ele tiver uma das várias competências que estão relacionadas com a
operação de apenas um tipo de máquina. A posse de uma determinada competência (por exemplo, mecânico, eletricista) permite que um empregado possa efetuar a manutenção de vários tipos de máquinas, embora a manutenção de um determinado tipo de máquina esteja associado a uma competência específica (por exemplo, a manutenção de um torno mecânico deve ser efectuada por um mecânico).

Nota: Estou a resolver este exercício e tenho duvidas nas relações entre entidades.
Gostaria que mim dessem alguma ajuda ?

Interessante…

Posso estar enganado, mas percebi que você não é brasileiro (efectuar, estou a resolver…) acertei?

Não sei no seu país, mas competências para nós não significam somente Profissões/Cargos, mas coisas como organizado, trabalha rápido, disciplinado, etc o que nos confunde um pouco (ao menos para mim) o nome da tabela…

Agora em se tratando do relacionamento, creio que o principal seria entre Funcionario e Competencia, não vejo a necessidade de replicar competencia em manutenção e tipomaquina…

Agora para diferenciar na tabela tipomaquina quem opera de quem arruma/conserta, poderia criar mais um id por exemplo…

TipoMaquina
id_TipoMaquina
nomeMaquina
id_operador (id_Funcionario)
id_mecanico (id_Funcionatio)

Ambos id’s apontando para Funcionario (sim isso é possível), esse é um caminho mais curto…

Outro caminho mais detalhado, seria ao invés de ter o id_mecanico na tabela TipoMaquina, incluir na tabela manutenção junto com o id_tipomaquina

Manutencao
id_Manutencao
id_TipoMaquina
id_mecanico (id_Funcionario)
data_manutencao date
hora_manutencao time

Tomei a liberdade de incluir os campos data/hora da manutenção, assim fica mais facil saber quem mexeu e quando mexeu e qual maquina foi mexida :wink:

Assim você deixa as competencias (no BR profissões) vinculadas apenas a tabela Funcionario, mas essa é minha visão…

E já pensando em expandir o sistema, é muito comum em fábricas/indústrias a troca de turno, assim há um funcionário diferente que trabalha naquela máquina em turnos diferentes, como resolver isso se a máquina está “amarrada” a somente um funcionário/operador?

Será que vale a pena pensar mais um pouco e criar uma tabela turnos, vinculando o id_TipoMaquina ao id_operador (id_Funcionario no caso) e o turno dele (data/hora de entrada e saída)?

1 curtida