Come organizzare i dati degli utenti nel database NoSQL per una funzione di invito dell'utente (anche prima che un utente si iscriva)?

1

Sto facendo un'app per la modifica di note collaborative che utilizza un database NoSQL (Firebase) sul lato server. Ogni utente può registrarsi utilizzando il proprio numero di telefono o e-mail. Attualmente, l'oggetto utente ha solo quattro valori: user_id, user_name, user_email, user_phone.

Ogni utente può creare una nota includendo persone dai suoi contatti anche se non sono registrati. Se la persona non è registrata, gli verrà inviato un SMS / e-mail che è stato incluso e si iscriverà per partecipare.

Il problema è questo:

Ogni oggetto note contiene un elenco di utenti per questo. Ogni utente avrà tutti i campi incluso un ID generato casualmente. Se una persona in quella nota si registra più tardi, come faccio a collegarmi tra quell'utente e questa nota? L'ID che un utente otterrà quando si registrerà sarà diverso dal suo ID in quella nota precedente. Attualmente il database è costituito da una raccolta di utenti, raccolta di note.

Una soluzione che ho trovato è stata:

Crea una raccolta chiamata pending_invites e aggiungi ogni utente non registrato da ogni nota aggiunta (insieme all'elenco di notes_id di cui fanno parte). Quando qualcuno si iscrive, confrontalo (usando l'email o il numero di telefono) con ogni utente nella tabella pending_invites e, se trova qualcuno, modifica l'ID di quell'utente (sostituirlo con l'ID che ha ottenuto durante l'iscrizione) in quelle note di cui è parte di. Ma ritengo che questa non sia una buona soluzione quando ci sono molti utenti.

Fornisci una soluzione migliore se hai qualche idea. Qualsiasi cambiamento nella struttura db è ben accetto.

    
posta Tom Saju 09.08.2018 - 06:49
fonte

1 risposta

0

Supponendo che possa esistere un solo utente con un particolare numero di e-mail o di telefono esistente in una volta, puoi semplicemente cercare nella tabella degli utenti e trovare quello corrispondente alle loro informazioni durante l'iscrizione, no?

Quindi la persona A è iscritta e crea una nota con il numero di telefono della persona B che non ha un account. B riceve un invito e si unisce, il collegamento nel testo contiene un identificatore che specifica che il numero di telefono di B è stato utilizzato per il riferimento.

    
risposta data 09.08.2018 - 17:38
fonte

Leggi altre domande sui tag