Un client ha un'enorme applicazione Windows in esecuzione su un database. Questo cliente vuole che tu sviluppi una versione "Express" di questa applicazione, includendo solo, diciamo, il 20% delle sue funzionalità. Questa versione Express deve essere un'applicazione Web, aperta sul WWW. Hai 2 scelte:
- Utilizza lo stesso database per sviluppare l'applicazione web
- Crea un nuovo database per l'applicazione Web, includendo solo le tabelle e gli oggetti necessari e utilizza un meccanismo di sincronizzazione per mantenere aggiornati i database.
Il cliente preferisce la seconda opzione, perché:
Sicurezza: se dispongono di un database separato per l'app Web, non "esporranno" l'enorme database di App di Windows su Internet.
Prestazioni: l'applicazione Windows ha un enorme processo che viene eseguito di notte e "blocca" il database per un paio di minuti. Pertanto, la creazione di un DB separato garantirebbe prestazioni migliori per l'applicazione Web.
Preferisco la prima opzione, perché:
Integrità: se disponiamo di database diversi, non saremo in grado di creare chiavi esterne tra loro.
Evita sincronizzazione: se disponiamo di database diversi, dovremmo creare un meccanismo di sincronizzazione, che è molto incline agli errori.
Manutenzione: la manutenzione sarà più semplice se disponiamo di un solo database. Nessuna modifica dovrà essere replicata.
Puoi aiutarmi a decidere quale strada seguire e perché?