Database relazionale o non relazionale per la mia applicazione descritta?

-1

Voglio progettare e implementare un'applicazione mobile in cui:

  • Ogni utente che è già registrato è in grado di aggiungere nuove notizie (titolo incluso: testo più un'immagine e contenuto: testo lungo, immagini o anche video).
  • Gli utenti possono scorrere notizie calde (dalla pagina delle notizie) e prendere una decisione leggere uno. Potrebbero premere il pulsante Mi piace. La notizia che ha di più Mi piace visualizzato prima.
  • Gli utenti sono in grado di aggiungere / eliminare alcuni elementi (abilità umane) nella loro pagina profilo. Le abilità sono categorizzate gerarchicamente: ogni foglia del l'albero delle abilità ha i suoi campi specifici oltre a quelli condivisi.
  • Le competenze di tutti gli utenti possono essere ricercate o filtrate in una pagina diversa di l'applicazione.
  • Gli utenti possono anche inviare messaggi tra loro.

Quale tipo di database è migliore per questa applicazione? rdbms (come MySQL)? o NoSQL (database dei documenti)? o una struttura ibrida (ad esempio MySQL per la memorizzazione di articoli e MongoDB per l'archiviazione delle notizie)? Inoltre, quale metodo è più comune per memorizzare immagini e testi lunghi sul lato back-end? Per favore, considera che abbiamo soldi limitati per acquistare grandi risorse ma ci aspettiamo comunque alte prestazioni.

    
posta Mart 18.10.2016 - 11:31
fonte

2 risposte

0

Suppongo che tu stia parlando di archiviazione delle informazioni lato server e non sul dispositivo su cui viene eseguita l'app, perché altrimenti non sarebbe possibile scambiare queste informazioni tra utenti.

È difficile valutare obiettivamente una soluzione di archiviazione dati senza immergersi nella tua situazione specifica. Quindi potresti ottenere risposte diverse a seconda di chi chiedi.

Quando inizi con questo tipo di problemi, penso che dovresti semplicemente mantenerlo semplice e utilizzare un database relazionale; MySQL o PostgreSQL.

Anche se i moderni sistemi di database hanno un certo supporto per i dati binari di grandi dimensioni, probabilmente si desidera archiviare immagini e altri caricamenti sul filesystem. Principalmente perché è più semplice servire di nuovo quei file attraverso un server web in questo modo.

'Grandi' pezzi di testo possono probabilmente andare nel database bene a seconda di cosa vuoi fare con loro e quanto sono grandi

    
risposta data 18.10.2016 - 12:24
fonte
0

Potresti optare per un database relazionale in quanto è più facile da usare e puoi comprenderne l'operazione molto bene fintanto che si tratta delle tipiche funzioni di elaborazione dei dati. MySQL è particolarmente un punto di partenza consigliabile.

Considera anche le implicazioni a lungo termine dei dati elaborati sulla tua app. Tuttavia, poiché la tua app è più "social", dovrai evitare il fastidio di interrogare i dati e unirli insieme, come nel caso dei database relazionali. Un NoSQL funzionerebbe bene in questo caso, ma questo dipende ancora da te. Ci sono anche curve di apprendimento per i database NoSQL.

    
risposta data 19.10.2016 - 18:45
fonte

Leggi altre domande sui tag