Я работаю над приложением на основе токенов и хочу применять роли для разных типов пользователей. Мой вопрос: лучше ли создавать модель «Группа» и в модели «Пользователь» и ссылаться на эту модель «Группа» на свойство 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,
},
}
...
Но я на самом деле не знаю, каковы будут преимущества и недостатки использования того или другого, в основном относительно масштабируемости, и если есть лучший способ.