Database – New application development – Use existing database or create a new one

applicationsdatabasesql serversynchronization

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?

Best Answer

I'm inclined to agree with you for the reasons you state. Also, if you use the same database, you also get a very practical business benefit - you can easily 'upgrade' a customer to the full version without a complicated data export/import.

One thing you might recommend is trying it first with the one database approach. If that becomes a problem, its far easier to then separate the 'express' data into a new database than it would be if you started off with two databases but later decided to merge them.