모델을 올바르게 이해하면 사용자가 작업을 선택한 것처럼 들리는 동시에 해당 작업에 관련된 질문에 답할 수 있습니다 (그 중 일부는 둘 이상의 작업에 적용될 수 있음). 그렇다면 테이블 구조가 다음과 같이 보일 것이라고 생각합니다.
먼저 개별 엔터티가 있습니다.질문 중 일부는 자연 일반적이며, 하나 개 이상의 작업에 적용 할 경우, 다음 질문은 다음과 같이 정의해야한다는
Users:
UserID (PK)
User
Jobs:
JobID (PK)
JobName
참고는 다음과 같습니다
Questions
QuestionID (PK)
Question
을 그렇지 않으면, 각 질문에 해당하는 경우 특정 작업, 당신은 적어도 하나 개의 연관 테이블을 피하고 질문 테이블에 채용에 FK를 통합 할 수 있습니다 :
Questions
QuestionID
JobID
Question
하지만 QUES이 확실하지 않으면 나는 이것을하지 않는 것이 좋습니다 각 직업에 고유하게 적용됩니다.
다음, 협회 : User_Job_Questions가 작업 ID와 QuestionID 사용자로 다시 Job_Questions 다시 관련된 다른 FK에 복합 FK를 포함 할 것이라고
가
User_Jobs (Composite key = FK on USerID, FK on JobID)
UserID
JobID
Job_Questions (Composite Key = FK on JobID, FK on QuestionID)
JobID
QuestionID
User_Job_Questions (this one would contain a feild for responses, and could also be named User_Response)
UserID
JobID
QuestionID
Response (likley constrained to ints from 1-10)
참고.
어디에서 질문을합니까? 그들은 욥 테이블에 있습니까? –
향후 질문 수가 증가 할 수 있다면 질문을 별도의 테이블에 넣는 것을 고려해야합니다. –
지금 가지고있는 유일한 테이블이 사용자 및 작업 인 경우 어디에서 질문을합니까? Jobs 테이블에 있거나 페이지의 html/php에 있습니까? 그리고 당신은 어디에서 답 값을 유지합니까? –