2011-12-14 2 views
2

Я создаю веб-приложение для студентов и консультантов. Студент выберет свое независимое исследование, и советник будет его контролировать. Я изо всех сил пытаюсь найти правильные отношения для своей программы.Модель отношения сущности для приложения Студент/Советник

В основном актеры в моем приложении.

a Student can select 1 independent study. 
a Student can only have 1 Adviser. 
an Adviser can supervise multiple Students. 
a coordinator can be an adviser also 

Моя попытка сделать ERD для моего применения.

Student - > Adviser (1 to many) 

Coordinator - > Adviser (1 to 1) 

Но проблема в том, что мне нужна таблица, которая показывает, что советник по контролирует студент X. Как мне это сделать?

+1

Координаторы не могут контролировать более одного советника? Все ли они советники, но обозначаются как Координатор, если они контролируют другого советника? – Sonny

+0

Есть ли отношения между координаторами и учениками? Между координаторами и исследованиями? –

+0

@ypercube Координатор - это в основном тот, кто одобрит выбранное исследование, которое предложил студент. После этого его задача советника контролировать. Координатором может быть и советник. – SupaOden

ответ

3

Вот еще ERD на основе комментариев ypercube «s на мой other answer:

enter image description here

В этой модели, если есть советник запись с идентификатором координатора, как это идентификатор, что координатор является советником.

+0

Это лучший, но не очень хороший способ сделать отношения «1: 1». Вам нужно только «координатор (id, name)» и «adviser (id)». С 'adviser (id)' является PK, а также FK для 'координатора (id)'. –

+1

@ypercube - Ах! Я не понимал ОП, так как все советники являются координаторами. – Sonny

+0

Я думаю, что исправлено сейчас :-) – Sonny

2

Вот ERD:

enter image description here

Я понимаю, что координатор является просто советник, который контролирует другой советник. Если установлен советник parent_id, этот «родитель» является Координатором советника. Моя диаграмма позволяет координатору контролировать более одного советника, потому что это имеет смысл для меня, но это отношение может быть изменено на One-to-One (1:1).

Я использую MySQL Workbench.

+0

Что такое 'parent_id'? –

+0

Это координатор -> советник. Похоже, что координатор - это просто советник, который руководит другим советником. – Sonny

+0

Не могли бы вы прояснить одну стрелку из таблицы советчика, которая указывает на себя. – SupaOden

Смежные вопросы