Tablas cuyo único propósito es especificar un subconjunto de otra tabla

La base de datos que estoy diseñando tiene unemployees mesa; Puede haber múltiples tipos de empleados, uno de los cuales son empleados médicos. La base de datos también debe describir una relación de muchos a muchos entre los empleados médicos y las competencias que tienen.

¿Está bien crear una tabla?medical_employees con solo unid columna, cuyo único propósito es especificar qué empleados son médicos? losid la columna tiene una restricción de clave externa que hace referencia aemployees mesa. El siguiente código debería aclarar mi pregunta:

/* Defines a generic employee */
CREATE TABLE employees (
    id      INT PRIMARY KEY AUTO_INCREMENT,
    name    VARCHAR(100) NOT NULL
);

/* Specifies which employees are medics */
CREATE TABLE medical_employees (
    id INT NOT NULL,
    FOREIGN KEY (id) references employees(id);
);

/* Specifies what competences a medic can have */
CREATE TABLE medical_competences (
    id     INT PRIMARY KEY AUTO_INCREMENT,
    name   VARCHAR(100) NOT NULL
);

/* A many-to-many relation between medical employees and
   their competences. */
CREATE TABLE medical_employees_competences (
    id             INT PRIMARY KEY AUTO_INCREMENT,
    medic_id       INT NOT NULL,
    competence_id  INT NOT NULL,
    FOREIGN KEY (medic_id) REFERENCES medical_employees(id),
    FOREIGN KEY (competence_id) REFERENCES medical_competences(id)
);