¿Por qué una mesa separada para eso? ¿Por qué no simplemente crear un BIT/Boolean? campo diga IsMedical y establezca eso en TRUE para empleados médicos en employee mesa como
/* Defines a generic employee */
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
IsMedical BIT(1)
);
De esa manera, diga si desea obtener todos los empleados médicos de Employee mesa; solo tendrás que hacer un solo filtro en WHERE condición que dice WHERE IsMedical = true . Mientras que, si pasa por una tabla separada, tendrá que realizar un INNER JOIN con medical_employees y employees mesa que creo que sería más costosa e innecesaria.