Как вставить связанные части данных в две таблицы?

У меня есть таблица сотрудников с

empID(name, address and dateOfBirth)
Position(positionID, positionName)
empPosition(empID, positionID, datePositionChanged, INDEX(empID), INDEX(positionID))

Я вставил в таблицу сотрудников как:

INSERT INTO `mario`.`employee` 
  (`empID`, `fName`, `lName`, `address`, `postCode`, `dateOfBirth`) 
VALUES 
  (NULL, 'Paul', 'Roberts', '221 heaventown street', '1994-12-01');

и в таблице позиций как:

INSERT INTO `mario`.`position` 
  (`positionID`, `positionName`, `datePositionChanged`) 
VALUES 
  (NULL, 'Manager', '2013-12-01');

Очевидно, что нет никаких отношений между Полом и менеджером. Любые предложения о том, как мне его вставить?

(Я очень новый студент; просто учусь на MySQL).

2 ответа

Если ваша таблица позиций будет похожа на основную таблицу для всех возможных позиций, назначьте идентификатор позиции для каждой строки и таблицы empPosition, вы можете иметь отображение между сотрудником и позицией.

ВСТАВИТЬ В mario,position (positionID, positionName, datePositionChanged) ЦЕННОСТИ (1, "Менеджер", "2013-12-01");

ВСТАВИТЬ В mario,employee (empID, fName, lName, address, postCode, dateOfBirth) ЗНАЧЕНИЯ (1, "Пол", "Робертс", "221 райская улица", "1994-12-01");

ВСТАВИТЬ В mario.empPosition' ('empID', 'positionID') значения (1,1);

Кажется, у Table Position должен быть первичный ключ, например, PositionId. Затем он вставляется в empPosition. Другими словами, empPosition - это своего рода справочная таблица, которая ссылается на первичные ключи EmployeeId и PositionId. Эта таблица может быть запрошена для получения позиции по employeeId и т. Д.

Другие вопросы по тегам