Attualmente sto progettando un'applicazione web che è abbastanza simile a Twitter ma con alcune caratteristiche uniche per la mia azienda. Le tecnologie sono Vue2, Spark framework e PostgreSQL .
Sto cercando di decidere come progettare l'ER e come integrare il lato client con la mia API. Lasciami abbattere il problema.
Questi sono i dettagli di un "tweet" che è il componente principale dell'applicazione:
Id,
Timestamp,
Tipo di messaggio (da un'altra tabella),
TaggedPeople (un elenco di ID utente da un'altra tabella),
Testo,
Stato (dalla tabella antoher),
Mi piace (Un elenco di ID utente da un'altra tabella),
Dati aggiuntivi (in base al tipo di post)
Devo mostrare un sacco di questi tweet nel mio feed, aggiungere / aggiornare / eliminare i tweet e filtrare i tweet in base a parametri diversi.
Attualmente sono diviso tra 3 opzioni:
- Partecipa alla query con altre tabelle (tipi, utenti e stati).
- Denormalizzare tutte le chiavi esterne in una colonna JSONB (sto usando PostgreSQL).
- Restituzione dei dati con i tasti e "unione" del testo effettivo nel lato client - utilizzando i dati precaricati in Vuex (uno strumento di gestione stato in Vue).
Sarà molto bello ascoltare qualcuno che ha esperienza con questo tipo di applicazioni web.
Grazie in anticipo.