Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tabelas cuja única finalidade é especificar um subconjunto de outra tabela


Por que uma mesa separada para isso. Por que não criar um BIT/Boolean campo diz IsMedical e defina isso como TRUE para funcionários médicos em employee mesa como
/* Defines a generic employee */
CREATE TABLE employees (
    id      INT PRIMARY KEY AUTO_INCREMENT,
    name    VARCHAR(100) NOT NULL,
    IsMedical BIT(1)
);

Dessa forma, digamos, se você deseja obter todos os funcionários médicos de Employee tabela; você só terá que fazer um único filtro em WHERE condição dizendo WHERE IsMedical = true . Considerando que, se você for por uma tabela separada, terá que executar um INNER JOIN com medical_employees e employees mesa que considero mais dispendiosa e desnecessária.