Che tipo di database dovrei costruire per memorizzare i dati dei social media per un'app Android con una base di utenti target di 1.000.000?
Prima di tutto ti suggerisco di memorizzare meno dati possibili sul lato client (l'app Android). Se l'utente sente che l'app usa più memoria può scegliere di disinstallarla, quindi è necessario memorizzare la maggior parte dei dati sul server e pochissimi dati necessari sull'app degli utenti finali.
La scelta numero uno che ti suggerisco è Realm: Crea applicazioni mobili reattive in una frazione di tempo. È davvero veloce ed è progettato per gestire milioni di entità di dati in pochi microsecondi. Anche le migliori aziende come Google lo usano. Il database Realm è usato su miliardi di dispositivi mobili, quindi potete vedere la sua popolarità. Quando avete Realm non avete bisogno di cercare altre opzioni di database. La parte migliore di Realm è che è un database a oggetti e possiamo salvare lo schema in formato classe e puoi avere dati memorizzati come oggetti di quella classe. Diventa facile popolare la vostra listview/recyclerview poiché potete passare direttamente ArrayList (o RealmList) di oggetti realm. Hanno anche la loro versione di recyclerview, qui non è necessario notificare quando i dati cambiano, le modifiche si riflettono automaticamente nell'interfaccia utente quando vengono apportate modifiche agli oggetti realm. Realm è disponibile in Java, JavaScript (per react native) e anche Objective C per iOS (nel caso in cui si inizi a sviluppare applicazioni per iPhone). Con Realm Mobile Platform potete sincronizzare i vostri dati mobili con il server, si chiama sincronizzazione offline. Questo è utile quando volete avere un backup dei vostri dati lato client. Potete anche avere degli ascoltatori che vi notificheranno quando il valore di un oggetto cambia in modo che possiate modificare la vostra UI di conseguenza. Tuttavia ci sono anche alcuni svantaggi. Dovete scrivere il codice di migrazione se cambiate il vostro schema, c'è la possibilità di perdere i dati se fate un errore scrivendo il codice di migrazione. Devi stare più attento alle eccezioni del puntatore nullo.
Un'altra scelta è SnappyDB che è usato da Uber, c'è un articolo su Medium che confronta Realm con SnappyDB.
"Database benchmark: Realm Vs. SnappyDB" Database benchmark: Realm Vs. SnappyDB - Hesam - Medium
Articoli simili
- Qual è il modo migliore per memorizzare i dati da Firebase a SQLite (database locale di Android)?
- C'è un sito web/app/software per pianificare la dieta in base ai micro e macro nutrienti target?
- Media sociali: Quali sono alcune app di social media/network poco conosciute con caratteristiche o funzionalità insolite?
- Quanto costerebbe il cloud hosting per un'applicazione di social media simile a Snapchat con 5 milioni di utenti?