Come progettare un back-end di archiviazione per un foglio di calcolo cloud?

3

Come progetto personale per apprendere le tecnologie chiave, sto cercando di creare un foglio di calcolo sul cloud (qualcosa come Google Sheets).

Come progetteresti il backend di storage per alimentare qualcosa del genere? Ha più senso usare un DB relazionale, qualcosa come un No-SQL-DB o un diverso tipo di tecnologia di storage? E in che modo dovresti mappare i diversi elementi del foglio di calcolo e le operazioni sugli elementi del database / operazioni in modo efficiente?

I fogli di calcolo sono di natura molto flessibile. Si può aggiungere praticamente qualsiasi tipo di tabella a un foglio di calcolo. Immagina di avere un foglio di calcolo con migliaia di righe e centinaia di colonne, che tipo di database sarebbe più adatto a operazioni come:

  • aggiunta di più righe contemporaneamente (tipo di inserti simili in un RDBMS)
  • aggiungi colonne arbitrarie (un po 'come un'operazione di aggiunta di colonne su un database orientato alle colonne)
  • modifica qualsiasi valore di cella nella tabella
  • esegui rapidamente operazioni su intervalli di celle (come somme, medie, ecc.) - forse questo può essere fatto sul lato client (nel browser?)

Se ignori le sfide front end e pensi al fatto che i dati devono essere archiviati da qualche parte, dove sarebbe un buon posto per archiviarli? Inutile dire che quando un utente interagisce con il foglio di calcolo dal browser, le interazioni stesse devono essere scattanti.

    
posta cydro 07.08.2018 - 12:26
fonte

1 risposta

2

Invece di cercare di capire quale tecnologia utilizzare, concentrati sui dati stessi.

Forse puoi provare a modellare come comunicare in modo efficiente le modifiche dell'utente al back-end e propagandole ad altri utenti.

Cerca di dipendere dalla minore tecnologia possibile e risolvi i problemi più interessanti.

Ad esempio: penso che un elenco di celle popolate sarebbe sufficiente, per cominciare. Memorizza solo il loro numero di riga, il numero della colonna e il contenuto della cella. Tutte le tue operazioni possono essere implementate come aggiornamenti a una o più celle.

    
risposta data 07.08.2018 - 16:13
fonte

Leggi altre domande sui tag