Концептуальные отображения в реляционные

это вопрос домашнего задания. У меня уже есть свой ответ, но я не уверен, что он правильный, нужен совет ваших ребят. Вот концептуальная схема:

-------------
| Employer  |
-------------------
| EmployerID, Name|
-------------------
    |
    |- supervise
    |
------------------           ---------------  ---------
| Running Project | ------- |Year, duration| | Project |
-------------------          --------------- -----------
    |                                        | ProjectID, ProjectName,|
    |- works                                 -------------------
    |
-------------
| Employees |
-------------
| EmpID, Name|
--------------

Вот моя реляционная схема:

Работодатель (EmployerID, имя) -> Первичный ключ — это EmployerID

Сотрудники (EmpID, имя) -> Первичный ключ — EmpID

Я думаю, что объект работодателя и сотрудников должен быть правильным, как его обычный класс. НО я не уверен, что запущенный проект и объект проекта, который является классом ассоциации и зависимым классом. Вот мой ответ:

Запуск проекта (EmpID, Year, Duration, ProjectID, ProjectName) -> все первичные ключи

Project(ProjectID, ProjectName) -> все первичные ключи


person db_lover    schedule 08.02.2011    source источник


Ответы (1)


Вот что я понял из отношений,

  • У вас есть 3 основных объекта: работодатель, сотрудник, проект
  • Атрибуты работодателя: EmployerId, Name
  • Атрибуты сотрудника: EmployeeId, Имя
  • Атрибуты проекта: ProjectId, имя, продолжительность, год
  • Один работодатель руководит более чем одним проектом.
  • Один сотрудник может работать более чем над одним проектом.

В этом случае можно выделить 3 корневые таблицы: Employer, Employee и Project. Таблицы, которые используются для связи корневых таблиц:

  • РаботодательПроект (EmployerId, ProjectId)
  • СотрудникПроект (EmployeeId, ProjectId)

Опять же, у меня есть предложение для таблицы Project: атрибут year соответствует году (или дате), когда проект был запущен. Если да, то атрибут Duration является производным атрибутом (CurrentDate - StartDate). Этот производный атрибут не нужно включать в таблицу.

person Devendra D. Chavan    schedule 10.02.2011