Dire che ho un tipico sito Web che fornisce agli utenti autenticati l'accesso ai loro dati (di proprietà) memorizzati. Gli utenti autorizzati devono essere in grado di eseguire operazioni CRUD sui propri dati. Se stavo usando una soluzione basata su RDBMS, userei una serie di join basati su user_id recuperati dalla sessione per assicurarmi di servire solo i dati degli utenti che li appartengono, per esempio;
select comments.* from comments
inner join blogs on blogs.id = comments.blog_id
inner join clients on clients.client_id = blogs.client_id
inner join users on users.client_id = clients.client_id
where users.user_id = X;
Questo esempio di pseudo-SQL mi fornisce tutti i dati dei commenti che appartengono all'utente.
Se stavo adottando un approccio NoSQL avrei un documento blog
che ha incorporato una matrice comments
e esposto un campo client_id
che potrei popolare in Mongoose, ma il problema arriva quando devo eseguire una query separata per recuperare tutti i client che appartengono all'utente.
C'è un modo più efficiente per farlo? Sono preoccupato che mi manca un concetto di base. Suppongo che la risposta potrebbe essere quella di archiviare più dati correlati all'interno dei documenti, quindi avere un documento di base client
che memorizza array di utenti e blog con commenti nidificati, ma sembra che il design sia troppo rigido.