Это отношение «Многие к одному» или «один к одному»?

#postgresql #data-structures #database-design #erd

#postgresql #структуры данных #проектирование базы данных #erd

Вопрос:

Я изо всех сил пытаюсь разобраться в этой концепции. Вот фотография моего ERD ERD

Посмотрите на таблицы «Заголовки» и «Сотрудники». Emp_title_id — это ссылка внешнего ключа на title_id в Title. Теперь для нескольких сотрудников есть одинаковые названия. Так разве это не должно быть отношением «многие к одному»? Аргумент против заключается в том, что два поля (emp_title_id в Employees и title_id в Title) имеют одинаковый набор значений, поэтому это отношение «один к одному».

Пожалуйста, дайте мне знать, следует ли мне думать об этом как о наборе значений (один к одному) или наборе «ячеек» с разными значениями (многие к одному)

Спасибо

Ответ №1:

Один ко многим (1:n)

  • Сотрудник может иметь только 1 должность.
  • Звание может быть присвоено n сотрудникам.

(У вас есть отношение 1: n между сотрудником и должностью, поскольку сотрудник может иметь только одну должность. Но вы установили отношения m: n между сотрудником и отделом, поскольку сотрудник может работать в нескольких отделах. В модели данных это видно из существования мостовой таблицы dept_emp, необходимой для предоставления m: n .)

Комментарии:

1. Спасибо. Я читаю это как 1 ко многим. Я предполагаю, что моя путаница возникает из-за того, что для заголовков и сотрудников соединение одинаковое: Title_ID. Теперь, даже если предположить, что в таблице employees есть повторяющиеся значения, различные значения по-прежнему сопоставляются с тем же значением идентификатора заголовка. :s

2. Да 1: n = один ко многим. Как показано, вопрос, который нужно задать: 1. Может ли один x иметь только один или несколько y? и 2. наоборот: может ли у одного y быть только один или несколько x? Таким образом, вы получаете 1: 1 (очень редко), 1: n (с ключевым столбцом одной таблицы, на который ссылается столбец внешнего ключа в другой таблице), или m: n (с мостовой таблицей, состоящей из ключей обеих таблиц). В вашем случае: может ли один сотрудник иметь только одну или несколько должностей? Ответ: Только один. Может ли одно название иметь только одного или нескольких сотрудников? Ответ: Много. Следовательно, отношение равно 1 ко многим.

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