Mysql
 sql >> Database >  >> RDS >> Mysql

Tabelle il cui unico scopo è specificare un sottoinsieme di un'altra tabella

Perché una tabella separata per questo. Perché non creare semplicemente un BIT/Boolean campo dire IsMedical e impostalo su TRUE per il personale medico in employee tabella come

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

In questo modo, dì se vuoi ottenere tutti i dipendenti medici da Employee tavolo; dovrai solo fare un singolo filtro in WHERE condizione che dice WHERE IsMedical = true . Considerando che, se vai da un tavolo separato, dovrai eseguire un INNER JOIN con medical_employees e employees tabella che credo sarebbe più costosa e non necessaria.