Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Tabellen, deren einziger Zweck darin besteht, eine Teilmenge einer anderen Tabelle anzugeben

Warum eine eigene Tabelle dafür. Warum nicht einfach ein BIT/Boolean erstellen Feld sagt IsMedical und setze das auf TRUE für medizinisches Personal in employee Tabelle wie

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

Sagen Sie auf diese Weise, ob Sie alle medizinischen Mitarbeiter von Employee erhalten möchten Tisch; Sie müssen nur einen einzigen Filter in WHERE durchführen Bedingung, die besagt WHERE IsMedical = true . Wenn Sie dagegen an einer separaten Tabelle vorbeigehen, müssen Sie einen INNER JOIN ausführen mit medical_employees und employee Tabelle, die meiner Meinung nach teurer und unnötiger wäre.