La mia domanda riguarda l'architettura della mia applicazione. Ho un'applicazione Rails in cui le aziende possono amministrare tutte le cose relative ai loro clienti. Le aziende acquisterebbero un abbonamento e i loro utenti potranno accedere all'applicazione online. Spero di ottenere più aziende che si iscrivono alla mia domanda / servizio. Cosa devo fare con il mio codice e il mio database?
- Separa il codice base dell'applicazione e il database per azienda
- Un codice base per app ma un database separato per azienda
- Un codice base per app e un database
La decisione riguarda la sicurezza (ad esempio un utente dalla società X non dovrebbe vedere alcun dato dalla società Y) prestazioni (supponiamo che abbia successo, dovrebbe avere una buona prestazione) e scalabilità (ancora una volta, se ha successo, dovrebbe avere un buone prestazioni ma anche facile per me gestire tutte le società, modifiche al codice, ecc.)
Per motivi di manutenibilità, tendo a optare per l'unico codice base, ma per il database non lo so davvero. Quale pensi sia l'opzione migliore?