我应该将哪个数据库后端用于工程学院的教师反馈系统?

时间:2017-11-08 06:31:07

标签: json sql-server database database-design

我正在为工程学院的教师反馈系统工作,该系统将从内联网的学生那里获得反馈。

功能如,

  1. 学生将针对各自的科目,为各自班级的个别教师提供反馈。

  2. 学生按照实际目的分为(A,B,C,D,E)等批次,个别实验室院系也应有个别反馈。

  3. 在开始接受反馈之前,需要存储具有各自教师的科目录入。这样就可以自动检索学生反馈。

  4. 存储问题列表以作为反馈表单显示给学生,其中包括(优秀,良好,好,差)等一些类别。当学生提交他/她的反馈时,需要将其存储在后端数据库中。

  5. 现在,对于所有这些,首先我考虑了基于文档结构的JSON数据库,并通过将个别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"}
        }
    }
    

    这只是纸上谈论并考虑了这个想法。

    我很困惑我将如何在每个反馈的结构中存储问题。否则我将移动使用Table bases DB作为整个系统。

    我有任何想法,请帮帮我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

查看用例中涉及的数据量,您可以随时使用关系数据库。

一个人应该使用nosql,如果有大量的连接或数据很大,可以合并到一台机器中。在nosql中隐式实现了分片,这样可以在需要时对数据进行分片。

对于nosql,需要以一种预先计算的形式存储数据的方式存储数据。

因此,在为基于文档的数据库创建结构时,您需要考虑=>

您可以容忍重复条目但您想要O(1)中的数据的区域。 与您的情况一样,如果我们想要教师数据,我们可以通过以下方式存储数据: -

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

通过以这种格式存储数据,您可以为教师获取数据,而无需参考其他一些集合。

您可以为学生存储数据。 最后,会有冗余数据,但您的检索过程会很快。 所以它的内存与检索时间相似。