我正在为工程学院的教师反馈系统工作,该系统将从内联网的学生那里获得反馈。
功能如,
学生将针对各自的科目,为各自班级的个别教师提供反馈。
学生按照实际目的分为(A,B,C,D,E)等批次,个别实验室院系也应有个别反馈。
在开始接受反馈之前,需要存储具有各自教师的科目录入。这样就可以自动检索学生反馈。
存储问题列表以作为反馈表单显示给学生,其中包括(优秀,良好,好,差)等一些类别。当学生提交他/她的反馈时,需要将其存储在后端数据库中。
现在,对于所有这些,首先我考虑了基于文档结构的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作为整个系统。
我有任何想法,请帮帮我。提前谢谢。
答案 0 :(得分:0)
查看用例中涉及的数据量,您可以随时使用关系数据库。
一个人应该使用nosql,如果有大量的连接或数据很大,可以合并到一台机器中。在nosql中隐式实现了分片,这样可以在需要时对数据进行分片。
对于nosql,需要以一种预先计算的形式存储数据的方式存储数据。
因此,在为基于文档的数据库创建结构时,您需要考虑=>
您可以容忍重复条目但您想要O(1)中的数据的区域。 与您的情况一样,如果我们想要教师数据,我们可以通过以下方式存储数据: -
{
"name" : "xyz",
"feedbacks":[
"Q1":[
{
"cand1":"good",
"cand2":"bad"
}
],
"Q2":[
{
"cand1":"good",
"cand2":"bad"
}
]
]
}
通过以这种格式存储数据,您可以为教师获取数据,而无需参考其他一些集合。
您可以为学生存储数据。 最后,会有冗余数据,但您的检索过程会很快。 所以它的内存与检索时间相似。