I have multiple applications that may act individually, or together, based on my customer needs. The previous developer implemented all application to use the same database and has different schemas to separate each application’s tables (assume one application is called Document Management and other is called Task Management).
The Document Management app is completely independent of the Task Management app, so a customer can have it alone, and someone else may get the other app as well so they may work together for more features. now the tables for each app are in a one single big database containing different schemas such as DM (for Document Management) and TM (for Task Management).
Assuming a customer has both (or even more apps with more schemas), the database will be large and contain tables of different apps under only different schemas.
The other apps does not integrate in proper ways such as APIs with each other in order to use the other apps features, they directly connect to their db and fetches required data.
I suggested that we need to stop this process and implement proper APIs to integrate them properly.
Now that we need to separate them, is it really required to separate the databases for each app instead of using different schemas in the same database? What are the pros and cons in separating them?
3