wertex15
@wertex15

Как правильно создавать связь?

Есть сотрудники в таблице Employee
Есть таблица Passport
Есть таблица Passport_divisioin_code (строка код подразделения)

В чем разница если я сделаю в таблице Passport поле employee_id или в таблице Employee поле passport_id
Точно так же с Passport_divisioin_code:
Добавлять в таблицу Passport поле passport_divisioin_code_id или в таблицу Passport_divisioin_code поле passport_id
  • Вопрос задан
  • 64 просмотра
Решения вопроса 2
myjcom
@myjcom
Passport имеет сотрудника?
или все таки сотрудник имеет Passport?

Passport содержит в себе passport_divisioin_code_id
или passport_divisioin_code_id содержит в себе Passport?

логика проста.
Ответ написан
В чем разница если я сделаю в таблице Passport поле employee_id или в таблице Employee поле passport_id

Разница в том, что в первом случае у сотрудника может быть (с точки зрения модели БД) несколько паспортов или не быть вообще. И этот факт будет определяться наличием записи в отношении Passport, что более правильно, нежели простановка в NULL значения passport_id в таблице Employee. Плюс, что для вас первично - сотрудник или паспорт? В нашем проекте это был сотрудник, паспорт могли внести и позднее, поэтому мы выбрали первый вариант (плюс, опять-таки, адекватно моделировалось отсутствие паспорта).

или в таблицу Passport_divisioin_code поле passport_id

Это код подразделения имеется в виду? Ну тогда конечно
Добавлять в таблицу Passport поле passport_divisioin_code_id
, иначе как вы сделаете что у нескольких паспортов один код подразделения?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы