Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tables dont le seul but est de spécifier un sous-ensemble d'une autre table

Pourquoi un tableau séparé pour cela. Pourquoi ne pas simplement créer un BIT/Boolean champ dire IsMedical et définissez-le sur TRUE pour les employés médicaux dans employee table comme

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

De cette façon, dites si vous voulez obtenir tous les employés médicaux de Employee table; vous n'aurez qu'à faire un seul filtre dans WHERE condition indiquant WHERE IsMedical = true . Alors que si vous passez par une table séparée, vous devrez effectuer un INNER JOIN avec medical_employees et employees table qui, à mon avis, serait plus coûteuse et inutile.