2011-11-12 2 views
0

나는 건물중인 학생 정보 시스템과 관련된 엔티티 작성에 대해 질문이 있습니다. 나는 Person 테이블 (id ..)을 만들었고, 나는 나의 학생, 부모 참조를 어떻게 처리 할 수 ​​있는지 알아 내려고 노력 중이다. FK 관계로 Person 테이블을 참조하는 두 개의 별도 테이블 (Student, Parent)을 만드는 것이 좋습니다. Person (성, 성, SSN ...)에 대한 모든 세부 사항이 Person 테이블에 설정되어 있지만 부모와 학생간에 차이가 있습니다. 데이터베이스에서 어떻게 처리합니까?데이터베이스 구조 : 다른 테이블에서 참조 할 Person 테이블 생성

답변

0

부모와 학생간에 근본적인 차이가 있기 때문에 두 개의 테이블이 선호되는 솔루션입니다. 이렇게하면 학생과 부모를 연결하는 관계를 쉽게 만들 수 있습니다.

다른 옵션은 제공된 레코드에 적용되지 않는 열에 null 값을 사용하는 것입니다. 그러나 관계가 항상 학생과 학부모를 연결하는 지 확인하는 것이 더 어려울 것입니다.

+0

두 개의 분리 된 테이블 (Parent, Student)을 생성하면 총 3 개의 테이블 (Person 테이블 포함)이 있습니다. 이 두 테이블 각각에 중복 레코드가 생성되는 것을 피하려면 어떻게합니까? 내 신청서는 학생을 만들고 학부모에게 연결해야하지만 내 질문에 대해 분명히해야합니다. 나는 Person 테이블이 필요한지 묻고 있었다. – Warz

+0

person 테이블은 필요하지 않습니다. 기술적으로 부모와 학생은 사람의 하위 클래스가 될 수 있습니다. 그러나 이것은이 예제에서 거의 도움이되지 않는 추가 작업입니다. 필자는 person 테이블의 항목을 올바른 (학생 또는 부모) 테이블로 마이그레이션하고 person 테이블을 삭제할 것입니다. –

+0

응용 프로그램에서 증가하는 역할의 수 때문에 Person 테이블을 사용했습니다. 그러나 나는 말했듯이 쉬운 관계와 연결을위한 (학생 & 부모) 테이블을 만드는 것을 끝내었다. 당신의 도움을 주셔서 감사합니다. – Warz

0

저는 Casey Robinson이 그 깨끗한 해결책에 동의합니다.

테이블을 생성 (studentParent을 :

는하지만 이미 여기에 Person 테이블을 변경할 수 없습니다 한마디로 다른 코드에서 사용중인 인구 Person 테이블을 ...있는 경우에하는 것은 내가 제안 것입니다)에는 두 개의 열 (student_id 및 parent_id) 모두 외래 키가 있습니다. studentParent.student_id = 학생의 Person.id 및 studentParent.parent_id = 부모의 Person.id.

이렇게하면 사용자 테이블을 변경할 필요가 없습니다. 그리고 부모, 학생 관계를 만들 수있을 것입니다.

0

자세한 내용을 알지 못하면 Person 테이블과 Student 테이블이 충분해야합니다. student_id 및 Parent_id와 같은 Student 테이블에 두 개의 열이 있으며 Person 테이블의 person_id에 대한 FK입니다. 이것은 모든 학생이 아니라 부모 인 학생에게만 알 필요가 있다고 가정합니다. 또한 학생과 부모 모두 사람이라고 가정합니다.

관련 문제