aggiornamento degli elementi del database agli utenti "sottoscritti"

1

Ho alcune categorie che gli utenti possono preferire e tenere traccia, i nomi e i dettagli della categoria effettiva sono memorizzati nel DB, ma gli elementi appartenenti a ciascuna categoria vengono recuperati tramite API.

Quando un utente aggiunge una categoria alla sua lista preferita, chiamo la api recupera tutti gli elementi appartenenti alla categoria e memorizzo la categoria effettiva e gli elementi copiati nello schema utente, così posso tenere traccia di ciò che hanno spuntato come completo Aggiungo una proprietà completa sotto ogni elemento della categoria selezionata prima di memorizzarla sotto l'utente.

Il problema è che a volte vengono aggiunti nuovi articoli di categoria e devo aggiornare gli elenchi memorizzati dall'utente con nuovi elementi.

Come faccio per ridisegnare il DB in modo che gli utenti abbiano informazioni aggiornate. Devo estrarre gli elementi nel DB e impostare i miei utenti solo per i riferimenti alle categorie che seguono e per riferire quali elementi hanno completato? Come posso ottenere questo?

È un'applicazione JavaScript a pagina singola MongoDB.

    
posta B3356546 11.02.2017 - 06:15
fonte

1 risposta

3

store the actual category and items copy under the user scheme

Sono necessarie altre tabelle, che associano gli utenti a categorie e utenti ai relativi elementi selezionati.

Inoltre, non so perché i tuoi articoli non sono nel database poiché sembra che siano effettivamente entità di database ma per qualche ragione c'è un'API per recuperarli, anche se molti metadati su di essi sono memorizzati nel tuo database principale.

La tabella degli utenti non deve memorizzare quel tipo di dati di relazione come elementi al di sotto di esso. Ci dovrebbero essere almeno cinque tabelle:

  • Utenti
  • Categorie
  • Articoli
    • Categorie di riferimento
  • Categorie utente
    • Uso dei riferimenti a entrambe le tabelle precedenti
  • Elementi utente
    • Uso dei riferimenti a utenti e articoli

Questo significa che quando un utente "fa il segno di spunta come completo" un oggetto viene aggiornato nella tabella User Items . Quando si iscrivono a una categoria, viene aggiunto alla tabella User categories .

Il risultato è che puoi banalmente interrogare qualsiasi combinazione tu voglia. Se si desidera che tutti gli elementi utente non disattivati eseguano una query che recuperi tutti gli elementi corrispondenti agli elementi a cui l'utente è abbonato non sono "spuntati". Se vuoi che tutti gli elementi spuntati dall'utente, fai la stessa cosa.

    
risposta data 11.02.2017 - 14:13
fonte

Leggi altre domande sui tag