让我告诉你一些关于我的应用程序和问题的信息:这个应用程序将用于在组织推出的特定课程中注册学生。除其他信息外,学生将在表格中提供以下信息:
- 可用课程中的课程
- 他的照片
表格提交成功后,他可以打印他的准考证。
现在对于管理员:
- 他可以创建任意数量的课程
- 他可以切换课程的可用性
- 他可以选择
start
课程的卷号 - 他可以更改
current
课程的卷号
学生点击提交后的步骤如下:
course_id
从表格中获取,并获取该current
课程的卷号- 将带有卷号的图像保存
current
为路径中的文件名course_name/batch/roll_number.(png|jpg)
- 图片保存成功则获取图片,否则拒绝
- 调整图像大小并覆盖现有图像,如果调整大小失败则删除图像并拒绝
- 将学生的表格保存在
forms
集合中 - 增加该
current
课程在courses
收藏中的卷号 - 发送包含表单数据的响应以及图像的 base64 字符串(将在准入卡中使用)
问题:
问题是如果用户几乎同时提交表单,它可能会生成重复的卷号,因为他们将使用相同的current
卷号。我无法解决这个问题,因为我不能简单地自动增加表单,roll_number
因为它来自courses
集合。
这是我的数据库的样子:
{
"courses":[
{
"_id" : ObjectId,
"batches": [Object],
"course_name" : String,
"current": Number, // current roll number
"start" : Number, // starting roll number
"available": Boolean
}
],
"forms": [
{
"_id": ObjectId,
"roll_number": Number,
"course_id" : ObjectId
// other stuff
}
],
"settings": [ // always have one object
{
"_id" : ObjectId,
"accept_form": Boolean,
"courses": [ObjectId]
}
]
}
我在用:
multer 用于保存图像:https ://github.com/expressjs/multer
调整图像大小的锐利:https ://github.com/lovell/sharp
expressjs 用于处理请求
请告诉我应该怎么做才能解决这个重复问题。