Tabelas cujo único objetivo é especificar um subconjunto de outra tabela

O banco de dados que estou projetando tem umemployees mesa; pode haver vários tipos de funcionários, um dos quais é médico. O banco de dados também precisa descrever uma relação muitos-para-muitos entre funcionários médicos e quais competências eles têm.

Tudo bem em criar uma tabelamedical_employees com apenas umid coluna, cujo único objetivo é especificar quais funcionários são médicos? oid A coluna possui uma restrição de chave estrangeira que referencia oemployees mesa. O código abaixo deve esclarecer minha pergunta:

/* 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)
);

questionAnswers(3)

yourAnswerToTheQuestion