Qual è il modo migliore per archiviare i thread dei messaggi?

1

Sto integrando una funzione di messaggistica in un'applicazione scritta in Javascript e vorrei sapere qual è la struttura dati preferita per l'archiviazione dei messaggi.

Le due strutture che riesco a pensare finora sono queste:

const thread = [
  {
    id: 1,
    user: 'joanne',
    message: 'Hello, How are you?',
  },
  {
    id: 2,
    user: 'jack',
    message: 'I\'m good thanks, and you?',
  },
  {
    id: 3,
    user: 'joanne',
    message: 'I\'m also good thanks, and you?'
  },
  {
    id: 4,
    user: 'jack',
    message: 'I\'m good thanks, and you?',
  },
];

o

const thread = {
  1: {
    user: 'joanne',
    message: 'Hello, How are you?',
  },
  2: {
    user: 'jack',
    message: 'I\'m good thanks, and you?',
  },
  3: {
    user: 'joanne',
    message: 'I\'m also good thanks, and you?',
  },
  4: {
    user: 'jack',
    message: 'I\'m good thanks, and you?',
  },
};

Ci sono vantaggi di uno rispetto all'altro?

    
posta Fried_Chicken 20.12.2017 - 06:33
fonte

1 risposta

2

Il primo modulo è un elenco, il secondo è un indice.

Una lista è la struttura più semplice possibile per archiviare i messaggi. È anche naturale, perché di solito l'ordine dei messaggi è importante. Quando arriva un nuovo messaggio, semplicemente aggiungilo alla fine. Un caso di uso comune dei messaggi li sta stampando, o solo una parte dell'elenco, ad esempio gli ultimi% messaggi di% di scambio, eventualmente con alcuni filtri applicati. Tali operazioni sono semplici da implementare come semplice iterazione.

Un indice implica una specializzazione per qualche scopo. Se vuoi trovare messaggi per ID, la seconda struttura è utile. Se non hai mai bisogno di trovare messaggi per ID, l'indice è completamente inutile. L'iterazione su un indice in ordine cronologico non è generalmente ottimale, come indici non sono progettati per questo. Non è ovvio come visualizzerai gli ultimi N dei messaggi dell'indice.

Conclusione:

  • Utilizza un elenco come base
  • Se hai bisogno di trovare messaggi per id, e solo allora, usa anche un indice, oltre alla lista
risposta data 20.12.2017 - 07:27
fonte

Leggi altre domande sui tag