gpt4 book ai didi

asp.net - 如何在断电的情况下持久化学生在线测验数据

转载 作者:行者123 更新时间:2023-12-04 06:18:37 25 4
gpt4 key购买 nike

我需要一个关于场景的建议。例如。如果学生在家中进行在线评估测验,并且在此测验期间......电力故障发生在测验过程中。那么在那种情况下,我们将如何管理状态。我的意思是可能的解决方案是什么......解决方案可以是任何形式。请就您将如何处理这种情况提出建议。以前,状态是使用 session 和缓存存储的。

提前致谢。

最佳答案

学生侧停电
您的测验可能会逐页进行,其中每个页面都将数据发布到服务器。您应该将发布的数据保存到某个持久性介质(数据库最好)。
重启后识别用户

  • 用户是匿名的
    如果您的用户在参加测验之前不需要登录,您必须以某种方式识别他们。给他们一个带有一些标识符的持久性 cookie,您可以在数据库中使用该标识符来存储他们的答案,因此如果断电并且当他们回来时,您仍然可以知道他们是谁,因为 cookie 会自动发送给您。这里的问题当然是当多个学生使用同一台机器时会发生什么。你也必须解决这个问题。最简单的方法是让您的用户登录您的测验应用程序。
  • 用户已登录
    这是一种简单的情况,您只需将他们的答案与他们的 ID 一起保存。它的工作原理与第一个示例类似,但不同的是,您知道他们到底是谁(知道他们的名字等)

  • 如果你有几个测验怎么办?
    如果是这种情况,您可能不想为每个人创建一个单独的表来存储答案。在这种情况下,最好的方法是使用单个表模式:
    UserID, QuizID, CurrentStep, Answers
    -------------------------------------
    这将为您提供有关用户在测验中的位置的所有信息(因此您可以在断电后继续)并将答案保存为 XML 数据。当测验是一个分步过程并且用户返回到现有的未完成测验时,当前步骤可能会对您有所帮助。这将帮助您向他们展示第一个未完成的步骤,以便他们可以轻松地继续他们离开的地方。
    这将使您有足够的可能性在同一个表中存储几个不同的测验。 XML 数据可以提供简单直接的答案或分支的答案。取决于你的测验是什么样的。
    你应该选择什么样的数据库?
    您可以选择像 MySql、Oracle 或 SQL Server 这样的原理图数据库,也可以选择 document-oriented database这可能更适合您的需求。根据您使用的平台,您会找到合适的文档类型数据库。
    基于问题池的评估
    正如您所说,您有一堆问题,我怀疑这样的数据库模式应该支持业务流程。你会有这些表:
  • Subject - 如果您要集中申请各种研究科目,则需要此表
  • Group - 定义了问题组并与主题表相关;小组可能是第 1 学期、第 2 学期或类似的;这些组可以选择一组与某个主题相关的评估问题,并且是应该评估的组的一部分
  • Question - 这是实际的问题池;每个问题都有相关的数据到表组;此表可能有额外的元数据,这些元数据包含有关问题级别的信息,这些信息可以计入结果问题/答案点
  • Student - 您的学生很可能必须登录此应用程序,正如这里的几位回答者所指出的,这也是推荐的方法,特别是因为我怀疑学生将使用公共(public)设施工作站,这意味着多个学生可能使用同一台计算机
  • Assessment - 这是中央表格之一,保存有关学生参加评估测试的数据;它与学生表有关,有评估开始时的时间戳等。
  • AssessmentQuestion - 用于记录学生答案的关系表;当评估开始时,会在此表中创建 X 条记录,这些记录实际上指向从适当问题池中为学生选择的特定问题;它至少有三列:StudentID、QuestionID 和 answer(可为空);如果允许学生设置不知道或类似的答案,则需要额外的列;在这种情况下,将添加一个附加列 AnswerState 并将与具有预定义状态的查找表相关。

  • 当学生开始评估并且同时发生电源故障时,您始终可以知道学生已经回答了哪些问题,哪些问题还需要回答。
    您还可以使用带有正确答案的附加表格,以便自动进行评估,并在所有评估问题完成后立即给出结果。
    选择问题的算法可以以某种方式完成,从长远来看,问题是平均分布的。
    但是,您可以使用更多管理数据使系统变得更加复杂,从而使尽可能多的任务自动化并使其可配置,以便更广泛地使用。

    关于asp.net - 如何在断电的情况下持久化学生在线测验数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6894829/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com