2012-05-22 3 views
1

나는 다음과 같은 데이터베이스 디자인이 있습니다이 데이터베이스 설계는 서브 쿼리를 적용 할 수 있습니까?

Employee Table: EmployeeID, Name, OrgCode 
Department Table: OrgCode, DepartName 
CompleteSurvey Table: ID, RespondantID, QuestionsAnswersID 
Questions Table: QuestionID, Question 
Answers Table: AnswerID, Answer 
QuestionsAnswers Table: ID, QuestionID, AnswerID 

각 질문은 다른 여러 선택권을 가지고 있습니다. 그 외에, 질문 아래에 하위 질문을 추가 할 생각입니다.

대부분의 질문에는 (동의 함, 동의하지 않음) 같은 선택 항목이 있습니다. 질문이 030 인 경우에도

을 포함하는 질문을 각 선택 항목과 각 선택 항목의 참가자 수와 함께 작성하고 싶습니다.

질문 표가 질문에 하위 질문을 삽입하는 데 도움이되는지 확실하지 않습니다. 해당 설계가 적용 가능합니까? 추천 메뉴가 무엇인가요?

답변

1

현재 질문 테이블에는 하위 질문을 사용할 수 없습니다. 하위 질문을 나타내는 ID를 가지고 시도해 볼 수 있습니다 (예 : 질문 ID 2, 그 다음 하위 질문 ID 2A 등).이 디자인은 실패 할 수 있으며 ID 계산에 따라 달라질 수 있습니다. 하위 질문의 수준을 확인하십시오.

더 나은 접근 방법은 자체 참조 관계에 대해 Parent-Child Dimension입니다. 당신은 할 수 있습니다 :

질문 표 : QuestionID, 질문, ParentID

ParentID 일부 질문의 ID입니다. 그것이 null 인 경우, 질문은 어떤 질문의 하위 질문이 아닙니다. 또한 재귀 관계에 대해 Employee-Manager Relationship이 표시 될 수 있습니다. 그러면 문제를 더 잘 이해하는 데 도움이 될 수 있습니다.

+0

도움을 주셔서 감사 드리며 접근 방법에 대한 예를 제공해 주시겠습니까? – user1395782

+0

@user1395782, 직원 관리자 관계에 대한 링크를 확인하십시오. – Habib

1

음, 하위 쿼리의 부모 (또는 질문의 하위 항목)를 지정하는 데는 아무 것도 없습니다.

가능한 방법은 다음과 같습니다. 1. 상위 열 질문 추가 부모 질문의 ID를 넣는 질문 표. 2. 질문 테이블에 하위 쿼리 열을 추가하고 하위 쿼리 ID를 array/json으로 저장합니다. 나는 이것이 쿼리를하기 어렵게 만들 것이라고 생각한다. 3. 사용자가 만드는 모든 하위 쿼리에 대해 두 개의 열로 새 테이블 하위 쿼리를 만듭니다.

관련 문제