A Client has a huge Windows Application running on a Database. This client wants you to develop an "Express" version of this application, including only, let's say, 20% of its features. This Express version must be a Web Application, opened on the WWW. You have 2 choices:
- Use the same Database to develop the web application
- Create a new database to the web application, including only the necessary tables and objects and use some synchronization mechanism to keep the databases up to date.
The client prefers the 2nd option, because:
Security: If they have a separated Database for the web app, they will not "expose" the huge Windows App Database on the internet.
Performance: The windows application has some huge process that they run at night and "lock" the database for a couple of minutes. So, creating a separated DB would ensure better performance to the web application.
I prefer the 1st option, because:
Integrity: If we have different databases, we won't be able to create Foreign Keys between them.
Avoid Sync: If we have different databases, we would have to create a synchronization mechanism, which is very prone to failures.
Maintenance: Maintenance will be easier if we have only one database. No change will need to be replicated.
Can you help me decide which way to follow, and why?