BlueSkye
09-11-2011, 18:06
Salve a tutti,
stavo pensando di sviluppare un'applicazione web in cui degli utenti si possono iscrivere al mio sito, ed io gli consento di eseguire la mia applicazione come se fosse "dedicata a loro", ed alla quale si possono iscrivere a loro volta altri utenti (che chiamerò "sotto-utenti"). Per intenderci, il principio alla base è molto simile a quello di ForumFree o Wordpress (la versione che consente di registrarsi online). Solo che nella mia applicazione, ho due livelli di utenti.
Ogni utente avrebbe a disposizione una discreta mole di dati sul database (informazioni, statistiche di uso, account di sotto-utenti, dati generati da sotto-utenti, eccetera), e le chiamate al database saranno relativamente frequenti (diciamo a spanne una ogni 10 secondi per ciascun utente).
Ma arrivo al punto: ipotizzando un contesto in cui potrei avere 1.000-10.000 utenti e/o sotto-utenti che stanno facendo un uso massivo della mia applicazione, mi domando: è meglio avere un unico grosso database in cui conservo i dati di tutti gli utenti, o è meglio creare un database schema separato per ciascun utente?
Onestamente non saprei quale dei due approcci sia migliore, dal punto di vista teorico (e nel concreto). Quale garantisce migliore prestazioni? Nel caso di unico grosso database, l'uso di indici può migliorare sufficientemente le prestazioni?
Come DBMS pensavo di utilizzare comunque MySQL.
Sto parlando di un contesto con molti dati, molti aggiornamenti, molto frequenti, ed in cui è importante che ogni utente abbia una visione aggiornata dello stato dei suoi dati (perché devo anche gestire una sincronizzazione "indiretta" fra i vari sotto-utenti di un utente).
Ringrazio tutti in anticipo, e spero di non aver violato regolamenti del forum :D
stavo pensando di sviluppare un'applicazione web in cui degli utenti si possono iscrivere al mio sito, ed io gli consento di eseguire la mia applicazione come se fosse "dedicata a loro", ed alla quale si possono iscrivere a loro volta altri utenti (che chiamerò "sotto-utenti"). Per intenderci, il principio alla base è molto simile a quello di ForumFree o Wordpress (la versione che consente di registrarsi online). Solo che nella mia applicazione, ho due livelli di utenti.
Ogni utente avrebbe a disposizione una discreta mole di dati sul database (informazioni, statistiche di uso, account di sotto-utenti, dati generati da sotto-utenti, eccetera), e le chiamate al database saranno relativamente frequenti (diciamo a spanne una ogni 10 secondi per ciascun utente).
Ma arrivo al punto: ipotizzando un contesto in cui potrei avere 1.000-10.000 utenti e/o sotto-utenti che stanno facendo un uso massivo della mia applicazione, mi domando: è meglio avere un unico grosso database in cui conservo i dati di tutti gli utenti, o è meglio creare un database schema separato per ciascun utente?
Onestamente non saprei quale dei due approcci sia migliore, dal punto di vista teorico (e nel concreto). Quale garantisce migliore prestazioni? Nel caso di unico grosso database, l'uso di indici può migliorare sufficientemente le prestazioni?
Come DBMS pensavo di utilizzare comunque MySQL.
Sto parlando di un contesto con molti dati, molti aggiornamenti, molto frequenti, ed in cui è importante che ogni utente abbia una visione aggiornata dello stato dei suoi dati (perché devo anche gestire una sincronizzazione "indiretta" fra i vari sotto-utenti di un utente).
Ringrazio tutti in anticipo, e spero di non aver violato regolamenti del forum :D