私が設計しているデータベースにはemployees
テーブルがあります。複数のタイプの従業員が存在する可能性があり、そのうちの 1 つは医療関係の従業員です。データベースには、医療従事者とその能力との間の多対多の関係も記述する必要があります。
どの従業員が医療関係者であるかを指定することのみを目的としてmedical_employees
、列のみを含むテーブルを作成しても問題ありませんか? id
列には、テーブルid
を参照する外部キー制約がありemployees
ます。以下のコードは私の質問をより明確にするはずです:
/* Defines a generic employee */
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL
);
/* Specifies which employees are medics */
CREATE TABLE medical_employees (
id INT NOT NULL,
FOREIGN KEY (id) references employees(id);
);
/* Specifies what competences a medic can have */
CREATE TABLE medical_competences (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL
);
/* A many-to-many relation between medical employees and
their competences. */
CREATE TABLE medical_employees_competences (
id INT PRIMARY KEY AUTO_INCREMENT,
medic_id INT NOT NULL,
competence_id INT NOT NULL,
FOREIGN KEY (medic_id) REFERENCES medical_employees(id),
FOREIGN KEY (competence_id) REFERENCES medical_competences(id)
);