Отношение One-to-Many в контексте баз данных означает, что одна запись в одной таблице связана с множеством записей в другой таблице.
Типичный пример: Отдел (Department) и Сотрудники (Employees).
Таблица "Отделы" (Departments) может содержать:
| ID | Название |
|---|---|
| 1 | Продажи |
| 2 | Разработка |
Таблица "Сотрудники" (Employees) может содержать:
| ID | Имя | Фамилия | department_id |
|---|---|---|---|
| 101 | Иван | Петров | 1 |
| 102 | Мария | Сидорова | 1 |
| 103 | Алексей | Иванов | 2 |
В этом примере department_id в таблице "Сотрудники" является внешним ключом (Foreign Key), ссылающимся на ID в таблице "Отделы". Это реализует отношение One-to-Many.
В ORM, например, Hibernate/JPA, это отношение может быть представлено следующим образом:
java
java
Здесь @OneToMany в Department указывает на отношение "один отдел ко многим сотрудникам", а mappedBy = "department" говорит о том, что управление этим отношением на стороне Employee через поле department. @ManyToOne в Employee является обратной стороной отношения. @JoinColumn указывает на столбец внешнего ключа.