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.