JSON 文件中的 UUID¶
课程实例、评估和问题的所有 JSON 配置文件必须包含 UUID(通用唯一标识符),以将磁盘上的 JSON 文件链接到数据库中的相应对象。这看起来像:
{
"uuid": "cef0cbf3-6458-4f13-a418-ee4d7e7505dd"
}
当您在不使用 ZJUI-Learn Web 界面的情况下创建新问题、评估或课程实例时,您需要将 UUID 添加到 JSON 文件。这些可以通过https://www.uuidgenerator.net或其他类似工具生成(UUID版本无关紧要)。
虽然 ZJUI-Learn 中的 UUID 通常是唯一的(我们建议使用唯一的 UUID),但它们的唯一性仅在其封闭上下文中强制执行:
- 问题在同一课程中必须具有唯一的 UUID。
- 课程实例在同一课程中必须具有唯一的 UUID。
- 评估在同一课程实例中必须具有唯一的 UUID。
- 学生标签在同一课程实例中必须具有唯一的 UUID。
- 评估访问控制覆盖规则必须在同一评估中具有唯一的 UUID。
不同的课程可以毫无问题地重复使用相同的 UUID,并且不同课程实例中的评估可以共享 UUID。
什么时候需要新的 UUID?¶
在构建课程时,您可能会遇到需要更改 JSON 文件中列出的 UUID 的情况。下面,我们列出了 UUID 应该或不应该更改的一些常见情况。
- 编辑 JSON 文件中的信息:不需要新的 UUID。 例如,如果您删除
infoAssessment.json中的问题,则 不得更改 UUID。这是因为 ZJUI-Learn 使用 UUID 知道它仍然是相同的评估,而您只想对其进行更改。如果您无意中以这种方式更改了 UUID,将其更改回来会将所有内容恢复到原来的状态,而不会丢失数据。
- 重命名目录:不需要新的 UUID。 例如,如果您重命名问题或评估目录,则应保留 UUID 不变,以便 ZJUI-Learn 知道这是相同的对象,但只是使用了新名称。
- 移动目录:不需要新的 UUID。 例如,如果您在课程实例之间移动评估或在课程之间移动问题,则可以按原样保留 UUID。在这种情况下,您也可以重命名它,但这不是必需的。
- 复制同一课程或课程实例中的目录:需要一个新的 UUID。 例如,如果您复制现有问题或课程实例以在同一课程中创建新问题或课程实例,则您将需要为新对象提供新的 UUID,以便 ZJUI-Learn 可以将其与原始对象区分开。同样,在同一课程实例中复制评估将需要新的 UUID。
- 将目录复制到不同的课程或课程实例:不需要新的 UUID。 例如,如果您将问题或课程实例复制到不同的课程,UUID 可以保持不变。同样,在课程实例之间复制评估不需要新的 UUID。在所有这些情况下,更改 UUID 不会有什么坏处,但也没有必要。