sql >> Base de Datos >  >> RDS >> Mysql

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

¿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.