Ho bisogno di creare uno schema per un'applicazione multiutente che ho bisogno di sviluppare usando MongoDB, Express, AngularJS e NodeJS. Ho 4 tipi di utenti in quell'applicazione, GUEST
, REGISTERED_USER
, SUBSCRIBER
, ADMIN
. Una volta che l'utente ha registrato l'applicazione, ho bisogno di visualizzare moduli e informazioni in base ai ruoli di un particolare utente.Schema Mongoose per applicazione Multi-utente
Qualcuno potrebbe darmi qualche idea su come gestire lo schema per i diversi ruoli di un utente, perché potrei in seguito usarlo per funzionalità di ruolo e livello di accesso?
Ad esempio, il seguente registeredUserSchema
è comune per REGISTERED_USER
, SUBSCRIBER
, ADMIN
utenti:
var registeredUserSchema = mongoose.Schema({
userId: String,
fullName: String ,
email: String,
password: String,
created: { type: Date, default: Date.now },
roles: [String]
});
Ma poi ho bisogno di un sacco di informazioni per essere chiesto da un utente con SUBSCRIBER
ruolo così una volta che ha registrato l'applicazione, vorrei mostrare molte informazioni extra per mostrargli essere riempito nelle sue informazioni di acocunt, di un utente con solo REGISTERED_USER
.
Qualcuno potrebbe aiutarmi?
EDIT: Più analitico
Ad esempio, un REGISTERED_USER
avrà userId
, ma un utente con SUBSCRIBER
ruolo sta per avere subscriberId
. Quindi ho bisogno di decidere come strutturare i dati in quanto vi sono dati che sono comuni per tutti gli utenti e quindi ci sono dati diversi per ogni utente in base al suo ruolo. Ho bisogno di aiuto sulla strategia per scegliere di strutturare quei dati. Ad esempio, in Java Persistence API abbiamo varie strategie di ereditarietà per strutturare i dati nelle tabelle di database relazionali.
La cosa che ho è che basa sul ruolo di un utente che ho bisogno di chiedere e salvare le informazioni nel database. Ad esempio, un utente registrato avrà 'userId', ma un utente con ruolo di sottoscrittore avrà' subscriberId'. Quindi ho bisogno di decidere come strutturare i dati in quanto vi sono dati che sono comuni per tutti gli utenti e quindi ci sono dati diversi per ogni utente in base al suo ruolo. Ho bisogno di aiuto sulla strategia per scegliere di strutturare quei dati. Ad esempio, in Java Persistence API abbiamo varie strategie di ereditarietà per strutturare i dati nelle tabelle di database relazionali. – skip