2017-09-14 3 views
0

Im nouveau pour les bases de données et mongo. Je crée une application web qui a différents types d'utilisateurs qui ont accès à différentes routes via différentes interfaces. par exemple: utilisateur, société, admin. Ma question est de devrais-je créer une seule collection qui héberge tous les utilisateurs et ajouter simplement un "type d'utilisateur" ou un "niveau d'accès" en tant que propriété sur chaque objet Utilisateur? ou devrais-je avoir 3 collections différentes, une pour chaque type d'utilisateur?Dois-je avoir différentes collections pour différents utilisateurs de mongodb?

Quelle est la pratique courante pour ce genre de chose?

Répondre

2

Quels seraient les champs pour chaque type d'utilisateur ? Si elles sont identiques, utilisez l'option type d'utilisateur. Le même utilisateur peut jouer plusieurs rôles demain. Stocker dans la même collection serait mieux.

Si les champs à stocker sont complètement différents et qu'il n'y a aucune chance que le même utilisateur puisse occuper 2 rôles dans votre application, utilisez 3 collections.

0

votre question votre schéma peut avoir des rôles défini comme ENUM et valeur user, company, admin. et le rôle doit être réglé en conséquence lorsque vous enregistrez les données db

var UserSchema = new Schema({ 
    first_name: { 
     type: String, 
     required: true 
    }, 

    last_name: { 
     type: String 
    }, Roles: { 
     type: String, 
     enum: ['USER', 'COMPANY', 'ADMIN'], 
     default: 'ACTIVE' 
    } 
}); 
UserSchema.index({ 
    username: 1, 
    role: 1 
}); 
+0

Que se passe-t-il si nous voulons avoir un utilisateur à la fois administrateur et société, mais doit avoir des champs supplémentaires? Pouvons-nous utiliser plus de collections et les référencer? – sarakinos