картирование один ко многим - PullRequest
0 голосов
/ 02 октября 2010

У меня проблема с отображением некоторого сценария в базу данных. Проблема выглядит примерно так:

Есть две сущности, называемые Employee(empID,empName) и Task(taskID,taskName).

  • Aу сотрудника могут быть задачи ZERO-OR-MORE.
  • Задача может иметь сотрудника ZERO-OR-ONE.

Какой будет структура таблицы, которой я должен следовать ..

Я собираюсь реализовать этот сценарий, используя Spring MVC и Hibernate в Java. Как я могу исправить эту проблему ..

Есть идеи?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 октября 2010

Похоже, вам может понадобиться еще одна таблица с именем EMPLOYEE_TASKS:

ID - sequence, PK.
EMPLOYEE_ID, numeric, not null, FK to ID in the EMPLOYEE table.
TASK_ID - numeric, unique key, not null, FK to ID in the TASKS table.

Ваши требования к 0-или-1 сотрудникам / задачам выполняются в Великобритании по TASK.TASK_ID.Ваши 0-ко-многим задачам на сотрудника обрабатываются парой EMPLOYEE_ID + TASK_ID.Поскольку TASK_ID уникален, эта пара не должна быть.В реальном мире я бы, вероятно, сделал это индексом.

Теперь я буду использовать инструменты обратного инжиниринга hibernate для создания аннотированных моделей.Мы поместили спецификации генератора последовательности первичного ключа в файл местный доступ.


Если бы в каждой задаче было только один сотрудник, эта таблица не была бы нужна.Мы могли бы добавить EMPLOYEE_ID в таблицу TASK, но две задачи, скорее всего, не имели бы EMPLOYEE.Это означает, что мы не можем сделать эту колонку Великобританией.Таким образом, нам было бы трудно использовать базу данных для применения ограничения ноль или один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...