I am trying to design an application to send mass mails.
There could be many company been registered in our site. Each company may have many users. Each user may have many messages. Each message must be sent to many mail ids. The application is supposed to be deployed in a clustered environment. We need to design a database for this. We are planning to deploy our app in Amazons cloud. What Database( Open database ) would be the right choice for this? What design will be perfect fit in this case? We thought of designing a DB like,
In this case, if there are many companies been registered with many users, many messages and huge number of mail ids, the app performance will become very slow.
So decided that, for each org related details there would be separate DB ( with the separate tables for messages and mail ids alone ). In this case, the number of DB will get increased based on no of orgs. We are in need of perfect design for the above requirement.
Any help on this will be appreciated.
A perfect design is not possible. No data structure or software application or schema or abstraction mechanism can create a system that is optimal for all possible uses. A practical solution requires that you balance requirements and implementation tradeoffs to maximize value.