2011-02-22 4 views
0

다음 필드가있는 테이블 학생이 있습니다.Mysql 자신을 반복하지 않도록하는 방법

Id,FirstName,SecondName,Photo,Student_ID 

나는 또한 필드 class_of_2011라는 테이블이

Id,FirstName,SecondName,Photo,Student_ID,Subjects 

나는 테이블 학생들의 일부 특정 학생을 선택하고 테이블 class_of_2011에서 그들을 갖고 싶어,하지만 난 이미 테이블 학생의 이름이 .이 작업을 수행하는 유일한 방법은 class_of_2011 테이블에 원하는 이름을 복사하는 것입니다.하지만 2012 년 이후의 클래스가있을 것이므로 한 테이블에서 다른 테이블로 데이터를 단순히 복사하는 것처럼 느껴집니다.

필자의 경우 필연적으로 반복하고 있습니까?

답변

1

학생 표 아이디, 이름, SecondName, 사진, Student_ID

주제 표 아이디,

Student_Subjects 표 아이디, Student_Id, Subject_Id, 올해

한 학생에게 여러 해 동안 여러 과목을 배정 할 수 있습니다.

2

쉽게 정규화 될 수 있습니다. 왜 class_of_ 테이블에 student 테이블의 외래 키가 있습니까? id 열? 경우 누군가가 5 개년 계획에이 방법으로

StudentId,Subjects

는 한 학생의 기록은, 여러 클래스와 연관 될 수있다.

Students 테이블의 Student_ID 필드는 ID 번호 또는 그 테이블의 기본 키가 아닌 것으로 가정합니다. 주제

+0

한 구조 조정 것 소비에트 _ 유니언의 5 개년 _ 기본 _ 경제). 동료. ;) –

1

테이블에는 students 테이블의 기본 키가 있고 다른 "반복 된"데이터는 없어야합니다. 관심있는 다른 모든 열은 쿼리에서 두 열을 함께 결합하여 얻을 수 있습니다.

1

나는 [5 개년 계획 (http://en.wikipedia.org/wiki/을 언급 위해 가능하면 데이터 ... 뭐 그런 ....

Student Table 
ID, Name, Address, other common specific to student 

GraduatingClass Table 
YearGraduate, StudentID 

Enrollment Table 
StudentID, ClassID, SemesterID 
관련 문제