2014-07-08 2 views
0

데이터베이스 디자인과 관련하여 질문이 있습니다. 사용자 기본 설정에 따라 목록을 정렬하는 가장 좋은 방법은 무엇입니까?Entity Framework POCO Desgn - 사용자 기본 설정에 따라 목록 정렬

내 클래스는 다음과 같습니다

public class Questionnaire 
{ 
    public string Name {get; set;} 

    public virtual ICollection<Question> {get; set;} 
} 

public class Question 
{ 
    public string QuestionText {get; set;} 

    public int Answer {get; set;} 
} 

의 관계는 N입니다 : N - questionaire 많은 질문이있을 수 있으며, 문제는 여러 설문 조사의 일부 수 있습니다. 예 : Stackoverflow의 만족도에 대한 설문지를 상상해보십시오. "전반적으로 사이트가 마음에 드십니까?"와 같은 질문이있을 수 있습니다. 질문은 지형에 관한 설문지에서 다시 사용될 수 있습니다.

내 문제는 질문에 순서가 있어야한다는 것인데, 이는 설문지가 작성 될 때 제공되어야합니다. 순서는 단순히 영문자가 아니며 설문지 작성자의 아이디어에 맞도록 수정되었습니다. (예 : 광범위한 질문을 한 다음 세부 정보로 들어가기를 원합니다.) 어떻게 이것을 가장 잘 모델링 할 수 있습니까? 질문은 질문이 아니라 설문지에 따라 다르므로 질문의 속성이 될 수 없습니다. 각 질문에 "가중치"를 적용하는 세 번째 수업을 추가해야합니까?

답변

1

질의서마다 주문이 다를 수 있으므로 중간 표가 필요합니다. QuestionQuestionnaire에서 탐색을 제거하고 연결하는 중간에 표를 삽입 :

public class Questionnaire 
{ 
    public string Name {get; set;} 
    public virtual ICollection<QuestionItem> QuestionItems {get; set;} 
} 

public class QuestionItem 
{ 
    public int Order { get; set; } 
    public virtual Questionnaire Questionnaire { get; set; } 
    public virtual Question Question { get; set; } 
} 

public class Question 
{ 
    public string QuestionText {get; set;} 
    public int Answer {get; set;} 
} 
+0

감사합니다, 마법처럼 일했다 :) –