【问题标题】:Which Database back end should I use for Faculty Feedback System for an Engineering College?我应该将哪个数据库后端用于工程学院的教师反馈系统?
【发布时间】:2018-04-20 17:51:53
【问题描述】:

我正在为一所工程学院开发一个教师反馈系统,该系统将从 Intranet 中的学生那里获取反馈。

函数,

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

  2. 出于实际目的,学生被分为 (A,B,C,D,E) 等批次,各个实验室学院也应提供个人反馈。

  3. 在开始接受反馈之前,需要存储各个学院的主题条目。这样就可以自动检索学生反馈。

  4. 存储的问题列表以反馈表的形式显示给学生,有一些类别,如(优秀、好、好的、差)&当学生提交他/她的反馈时,它需要存储在后端数据库。

现在,对于这一切,首先我考虑了基于文档结构的 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。

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

【问题讨论】:

    标签: json sql-server database database-design


    【解决方案1】:

    看到您的用例中涉及的数据量,您可以一直使用关系数据库。

    如果有大量的连接或数据量很大需要合并到单机上,应该使用nosql。分片是在 nosql 中隐式实现的,因此可以在需要时轻松分片数据。

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

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

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

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

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

    为学生存储数据的方式与此相同。 最后,会有冗余数据,但您的检索过程会很快。 所以它就像记忆与检索时间的权衡。

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多