2017-11-08 4 views
0

저는 인트라넷의 학생들로부터 피드백을받을 공학 대학의 교수 피드백 시스템에 대해 연구하고 있습니다.공학 대학의 교수 피드백 시스템에 어떤 데이터베이스 백엔드를 사용해야합니까?

기능

  1. , 같은 학생은 해당 주제에 대한 각각의 클래스의 개별 교원에 대한 피드백을 제공 할 것입니다.

  2. 학생들은 실용적인 목적으로 (A, B, C, D, E)와 같은 배치로 나뉘며 학생 개개인의 피드백은 각 실습실의 학부모에게도 있어야합니다.

  3. Subject 피드백을 받기 전에 각 Faculty의 항목을 저장해야합니다. 따라서 학생 피드백에 대해 자동으로 검색 할 수 있습니다.

  4. 질문 목록은 학생이 피드백을 제출할 때 (우수, 좋음, 좋음, 나쁨)과 같은 몇 가지 범주로 학생에게 피드백 양식으로 표시되도록 저장됩니다. 학생은 피드백을 제출할 때 백엔드 DB에 저장해야합니다 . 이 모든 지금

는, 우선 내가 나누어 일부 구조를 알아 내기도 JSON DB를 기반으로하며 문서 구조에 대해 생각 학기, 수업, 실험실, 사용자, 학생, 교직원, 관리자, 개별 JSON 노드에 피드백 개별 입력란/입력란은 다음과 같습니다.

{ 
    Semester: { sem01: { name: "", year: "2017"} 
    }, 
    Class: { class01: { name: "classo1", semid:"sem01"} 
    }, 
    Lab :{ lab01 : {name : "labA", classid : "class01"} 
    }, 
    User : { user01 :{ name : "faculty01", pwd: "****", role : "faculty"} 
    }, 
    Faculty : { faculty01 : { userid : "user01",fname : "NAME", lname : "" } 
    }, 
    Student : { student01 : { userid : "user02"} 
    }, 
    Feedback : { feedbackid : { feedback : {}, user : "user02"} 
    } 
} 

이 내용은 종이에만 적용되며이 아이디어에 대한 것입니다.

각 의견에 대해이 구조에 질문을 저장하는 방법을 혼란 스럽습니다. 아니면 전체 시스템에 대해 DB베이스를 사용하도록하겠습니다.

나는 어떤 사람이 생각 나게 도와주세요. 미리 감사드립니다.

답변

0

유스 케이스에 관련된 데이터의 양을 보면, 항상 관계형 데이터베이스를 사용할 수 있습니다.

많은 양의 조인이 있거나 데이터가 단일 시스템에 통합되는 경우 nosql을 사용해야합니다. 샤딩은 nosql에 암묵적으로 구현되어 필요할 때 데이터를 쉽게 파쇄 할 수 있습니다.

nosql의 경우 데이터가 사전 계산 된 형태로 저장되어야합니다. 문서 기반 데이터베이스의 구조를 만드는 동안

그래서, 당신은 당신이 중복 항목을 허용 할 수 =>

지역을 고려할 필요가있다,하지만 당신은 O 데이터를 원하는 (1). 우리는 교사에 대한 데이터를 원하는 경우 귀하의 경우 등을, 우리는 방법으로 다음과 같은 데이터를 저장할 수 있습니다 : -

{ 
    "name" : "xyz", 
    "feedbacks":[ 
     "Q1":[ 
      { 
       "cand1":"good", 
       "cand2":"bad" 
      } 
     ], 
     "Q2":[ 
      { 
       "cand1":"good", 
       "cand2":"bad" 
      } 
     ] 
    ] 
} 

를이 형식으로 데이터를 저장하여 다른 모음을 참조하지 않고 교사에 대한 데이터를 얻을 수 있습니다.

학생들과 동일한 방식으로 데이터를 저장할 수 있습니다. 끝에 중복 데이터가 있지만 검색 프로세스가 빨라집니다. 그래서 그 같은 메모리 대 검색 시간은 절충됩니다.