Пн goose и Узел - Реализация ролей - Лучшие практики - PullRequest
0 голосов
/ 07 февраля 2020

Я работаю над приложением на основе токенов и хочу применять роли для разных типов пользователей. Мой вопрос: лучше ли создавать модель «Группа» и в модели «Пользователь» и ссылаться на эту модель «Группа» на свойство user_role в модели «Пользователь». Это было бы так: (я еще не начал, поэтому я не могу скопировать реальный код, это только для демонстрационных целей)

const GroupSchema = new Schema({
  role: {
    type: String,
    enum: ['admin', 'employee', 'guest']
  },
}

const UserSchema = new Schema({ 
  role: {
    type: Schema.Types.ObjectId,
    ref: 'Group'
  },
},

...

С другой стороны, я подумал сделать это:

const UserSchema = new Schema({
  role: {
    type: String,
    required: true,
  },
}
...

Но я на самом деле не знаю, каковы будут преимущества и недостатки использования того или другого, в основном относительно масштабируемости, и если есть лучший способ.

...