This question already has an answer here:
I was reading this question:
I was trying to standardize and modularize some functions (Email Management Module, CMS Module & etc) by implementing a 3-tier architecture concept where each module would have its own independent module database. So that in the future all we'd need to do is just code a presentation layer, reuse the BLL layer, DAL Layer and database.
My follow-up question is whether it is a good idea to place all the database tables from each module into the same database, or whether they should be separated into entirely separate databases? I am using PostgreSQL. My worries are:
- Problems with running data analysis if data is in many different databases
- Problems pinning down database performance issues if we use the same database for all modules
- In ability to join tables across modules if we some time in the future discover that our modularization is flawed for creating a certain feature