Sign in
Log inSign up

how to database design for user role based authentication like student, teacher , super admin

Mohammad shahaparan mojumder's photo
Mohammad shahaparan mojumder
·May 5, 2019

0

I am trying to create different types of registration for user . I have got three collection for users . I have been references user collection in both of teacher and student because I need to get email and password.

If a teacher register including email, password, firstname , lastname etc , there is a collection .

if a student register including email, password, firstname , lastname etc , there is another collection .

our all of email and password will be one collections

user - table/collection - email : - password: asdfasdf

student - table /collection - firstname: 'sujon"

teacher - table/collection - firstname: "sujon"

const UserSchema = mongoose.Schema({
    email: {
        type: String,
        required: true,
    },
    password: {
        type: String,
        required: true,
    },
    isAdmin: {
        type: Boolean,
        default: false,
    },
})


const StudentSchema = mongoose.Schema({
    user: {
        type: Schema.Types.ObjectId,
        ref: 'user',
    },
    firstname: {
        type: String,
    },
    lastname: {
        type: String,
    },
    photo: {
        type: String,
    },
    education: {
        type: String,
    },
    birth: {
        type: Date,
    },
    sex: {
        type: Boolean,
    },
})
  const TeacherSchema = mongoose.Schema({
  user: {
    type: mongoose.Schema.ObjectId,
    ref: "user"
  },
  firstname: {
    type: String
  },
  lastname: {
    type: String
  },
  photo: {
    type: String
  },
  designation: {
    type: String
  },
  birth: {
    type: Date
  },
  sex: {
    type: Boolean
  }
   });

how can implement database design