Задать вопрос
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
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Специалист.ру
    Основы программирования и баз данных
    1 месяц
    Далее
Решения вопроса 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
, иначе как вы сделаете что у нескольких паспортов один код подразделения?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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