2017-09-14 6 views
0

Ich bin neu in Datenbanken und Mongo. Ich erstelle eine Web-App mit verschiedenen Arten von Benutzern, die über verschiedene Benutzeroberflächen auf verschiedene Routen zugreifen können. zB: Benutzer, Firma, Admin. Meine Frage ist, sollte ich eine einzelne Sammlung erstellen, die alle Benutzer beherbergt und einfach einen "Benutzertyp" oder "Zugriffsebene" als Eigenschaft für jedes Benutzerobjekt hinzufügt? oder sollte ich 3 verschiedene Sammlungen haben, eine für jeden Benutzertyp?Sollte ich verschiedene Sammlungen für verschiedene Benutzer in mongodb haben?

Was ist allgemein üblich für diese Art von Sache?

Antwort

2

Was für jede Art von Benutzer seiner Felder würde sich auf den db speichern ? Wenn sie identisch sind, verwenden Sie die Option für den Benutzertyp. Derselbe Benutzer kann morgen in mehreren Rollen sein. Das Speichern in derselben Sammlung wäre besser.

Wenn die Felder, die gespeichert werden sollen, völlig verschieden sind und es keine Möglichkeit gibt, dass derselbe Benutzer in Ihrer Anwendung 2 Rollen haben kann, verwenden Sie 3 Sammlungen.

0

Durch Ihre Frage können Sie Ihre Schema Rollen als ENUM gesetzt haben und Wert als user, company, admin. und Rolle entsprechend eingestellt werden soll, während Sie die Daten

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

Was ist, wenn wir einen Benutzer sowohl im Admin als auch in der Firma haben wollen, aber zusätzliche Felder haben müssen? Können wir mehr Sammlungen verwenden und sie referenzieren? – sarakinos

Verwandte Themen