Архитектура базы данных (Справка) - PullRequest
0 голосов
/ 11 мая 2018

Я делаю это правильно? Я знаю, что это супер просто, но я только сейчас получаю некоторый опыт DBA.

У меня есть таблица Entity, которая не является статичной и называется Emps. В таблице Emps хранится вся личная информация сотрудника, например номера телефонов и т. Д. Затем у меня есть таблица с именем EmployeeOfflineTraining. В этой таблице хранятся все сотрудники, сертифицированные для обучения в классе, например, Forklift.

Я просто помещаю внешний ключ в таблицу EmployeeOfflineTraining, чтобы назначить записи обучения этому идентификатору сотрудника?

EMPS (Телефон, агентство, имя)

EmployeeOffLineTraining (GpcScore, оценка грузоподъемника, сертификация Forklife, EmpsId)

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Я бы создал косвенную таблицу, которая также отображает TrainingId и EmployeeOfflineTraining. Это дает вам гибкость в случае, если вам нужно ввести несколько типов обучения - вы можете просто добавить строку в таблицу обучения, а не изменять таблицу EmployeeOFflineTraining.

Вы можете также рассмотреть возможность создания таблиц Agency и EmployeeAgency в том же духе.

CREATE TABLE Emps (
  empId int unsigned not null auto_increment primary key,
  phone varchar(255),
  agency varchar(255),
  name varchar(255)
);
CREATE TABLE Training (
  trainingId int unsigned not null auto_increment primary key,
  name varchar(255)
);
CREATE TABLE EmployeeOfflineTraining (
  eotId int unsigned not null auto_increment primary key,
  empId int unsigned not null,
  trainingId int unsigned not null,
  score smallint unsigned,
  certifiedDate datetime,
  foreign key (empId) references Emps(empId),
  foreign key (trainingId) references Training(trainingId)
);
0 голосов
/ 11 мая 2018

Да. Запись в Википедии о нормализации БД То, что вы ищете, называется Нормализация базы данных

Сотрудники

EmployeeID PrimaryKey

Телефон

EmployeeName

AgencyId

Агентства

AgencyId PrimaryKey

AgencyName

EmployeeOfflineTraining

EMployeeOfflineTrainingId PrimaryKey

EmployeeId ForiegnKey to Employee Table

GpcSocre

ForkliftScore

ForkliftCertified

Редактировать Как указано Шоном Ланге, в таблице OfflineTraining есть серьезные проблемы, которые не рассматриваются в этом ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...