Ciao a tutti. Volevo avere un vostro parere su come strutturare il database di un gestionale.
A livello di performance conviene realizzare un unico database dove risiedono tutti i dati dell'azienda oppure ogni azienda ha il proprio database? Ovviamente il database di riferimento verrà scelto in fase di login in base ad un id specifico.
Per rendere più complessa la risposta vi dico pure che: in questo database ci sono determinati dati comuni a tutti. Per esempio, c'è l'anagrafica articoli standard che prevede tutti gli articoli standard che verranno dati all'azienda appena inizia ad utilizzare il gestionale.
Se per ogni azienda fornisco un database diverso significa che alcuni dati saranno replicati (però fate attenzione a valutare la possibilità che questi dati potrebbero anche essere modificati). Esempio: se io ho un'anagrafica articoli in cui un determinato vestito costa 55 euro, se volessi metterlo a 53 euro effettuo semplicemente la modifica sul db e basta. Se utilizzo un unico database dovrei avere una tabella correlata in un prendo l'id articolo, l'id dell'azienda e riprendo tutti i dati della tabella anagrafica articoli con tutte le modifiche effettuate su quell'articolo.
Quindi:
- soluzione 1: n aziende n databases in cui alcune tabelle potrebbero avere gli stessi dati delle tabelle dell'altra azienda (POTREBBE!!)
- soluzione 2: n azienda 1 database tutti i dati sono contenuti in un unico db prevedendo tabelle di oltre 1 milione di record
Grazie mille
A livello di performance conviene realizzare un unico database dove risiedono tutti i dati dell'azienda oppure ogni azienda ha il proprio database? Ovviamente il database di riferimento verrà scelto in fase di login in base ad un id specifico.
Per rendere più complessa la risposta vi dico pure che: in questo database ci sono determinati dati comuni a tutti. Per esempio, c'è l'anagrafica articoli standard che prevede tutti gli articoli standard che verranno dati all'azienda appena inizia ad utilizzare il gestionale.
Se per ogni azienda fornisco un database diverso significa che alcuni dati saranno replicati (però fate attenzione a valutare la possibilità che questi dati potrebbero anche essere modificati). Esempio: se io ho un'anagrafica articoli in cui un determinato vestito costa 55 euro, se volessi metterlo a 53 euro effettuo semplicemente la modifica sul db e basta. Se utilizzo un unico database dovrei avere una tabella correlata in un prendo l'id articolo, l'id dell'azienda e riprendo tutti i dati della tabella anagrafica articoli con tutte le modifiche effettuate su quell'articolo.
Quindi:
- soluzione 1: n aziende n databases in cui alcune tabelle potrebbero avere gli stessi dati delle tabelle dell'altra azienda (POTREBBE!!)
- soluzione 2: n azienda 1 database tutti i dati sono contenuti in un unico db prevedendo tabelle di oltre 1 milione di record
Grazie mille