我是mongodb的新手,我正在从事个人项目,这是用于大学项目的项目管理系统。我有3个用户admin(部门),学生和顾问。管理员是同时注册学生和顾问的管理员。所有用户都有一些通用字段,例如名称,电子邮件和密码。还有那里的不同领域。
他们的角色:-
- Admin -> adds the students and advisors
- Student -> choose projects and work on the projects in a team
- Advisor -> advice students based on their progress on their project
我的问题是设计模型时,我应该使用一个userSchema并将所有用户添加到一个集合中,还是为每个用户创建不同的集合。
我的第二个困惑是,如果我为每个用户创建不同的集合,该如何处理身份验证和授权?我正在将Node js用于后端。
我可以得到一些指导和建议吗?
答案 0 :(得分:0)
这是您的选择。 在这里,我建议对所有3种类型的用户使用一个集合。 由于每个人在注册时都具有相同的功能,例如姓名,电子邮件,密码等,因此肯定可以使用单个模式。
因此,在假设“用户”的架构上创建,然后使用一个“标签”选择器来识别管理员,顾问和学生。
我会做这样的事情:
var userSchema = new mongoose.Schema({
email: {
type: String,
unique: true,
required: true,
},
name: {
type: String,
required: true,
},
tag : {
type: String
},
Addtasks: [
{
topic: String,
words: Number,
keywords: String,
website: String,
otherdetails: String,
exampleRadios: String,
deadline: Date,
Date: String,
fileName: String
},
],
});
module.exports = mongoose.model('User', userSchema);
以此方式分别创建一个页面作为auth.js
进行身份验证,并使用通行证模块身份验证在其中写入单个身份验证代码。话虽如此,您现在可以对所有3个仪表板使用一个身份验证。
对于作为前端的车把,使用它来检查用户是否已登录。
{{if #user}}
<html>
<head>
.
.
.
...
在此之后,您可以实现这一目标。