2011-12-14 10 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) 

하지만 문제는 고문관 A가 학생 X를 감독한다는 것을 나타내는 테이블이 필요하다는 것입니다. 어떻게해야합니까?

+1

코디네이터는 하나 이상의 어드바이저를 감독 할 수 없습니까? 그들은 모두 고문입니까? 다른 고문을 감독하면 코디네이터로 지정됩니까? – Sonny

+0

코디네이터와 학생간에 관계가 있습니까? 코디네이터와 연구간에? –

+0

@ypercube 코디네이터는 기본적으로 학생이 제안한 선택된 연구를 승인합니다. 그 후 자문관의 직무를 감독해야합니다. 코디네이터도 고문이 될 수 있습니다. – SupaOden

답변

3

여기 other answer 내에서 ypercube의 의견에 따라 다른 ERD입니다.

+0

이것은 '1 : 1'관계를 만드는 것이 더 좋지만 좋지 않습니다. 'coordinator (id, name)'와'adviser (id)'만 있으면됩니다. 'adviser (id)'가 PK이고 FK가'coordinator (id)'입니다. –

+1

@ypercube - 아! 나는 모든 고문이 코디네이터라는 점에서 OP를 오해하고있었습니다. – Sonny

+0

저는 그것이 이제 고정되어 있다고 생각합니다 :-) – Sonny

2

은 여기 ERD입니다 :

enter image description here

나의 이해는 코디네이터가 단순히 다른 고문을 감독 고문 것입니다. 고문관의 parent_id이 설정되면 해당 "상위"는 고문 조정자입니다. 내 다이어그램은 코디네이터가 한 명 이상의 어드바이저를 감독 할 수있게 해주는데 그 이유는 나에게 의미가 있지만 그 관계는 One-to-One (1:1)으로 바뀔 수 있기 때문입니다.

나는 MySQL Workbench을 사용합니다. 이 ID의로 코디네이터의 ID와 고문의 기록이 있다면이 모델에서

enter image description here

, 그 코디네이터는 고문이다 :

+0

입니다. 'parent_id'는 무엇입니까? –

+0

코디네이터 (Coordinator) - 고문 (Adviser) 관계입니다. 코디네이터는 단순히 다른 고문을 감독하는 고문 인 것처럼 보입니다. – Sonny

+0

자신을 가리키는 어드바이저 테이블에서 화살표 하나를 정교하게 설명해 주실 수 있습니까? – SupaOden