June 8, 2009 at 2:30 pm
Hi Guys,
I am designing a database architecture for a Health care product. The design should follow SAAS model.
Here are the details:
1. The system serves multiple customers who wants to keep the data separate for security purposes and other reasons.
2. Each client will be sending the delta data daily after one time bulk data load.
3. Need one common database the maintains the data for all the clients.
4. Each client decides where the database should reside. Either with in my company's data center or within their network.
5. Each customer will be logging into the web site to check the data. At this time, we need to show only their data based on the login user. Each user will belong to one and only Customer.
6. The design should be such a way that to add a new customer, it should not take too long of time. It should be simple to implement the system with new customers.
7. Do not want to rewrite the SPs for each customer. Or at least reduce the work.
What is the BEST approach? considering Performance, Security, Maintenance, etc?
Anybody anything similar to this? What are my options?
Thanks a million in advance.
June 9, 2009 at 7:44 am
Hello Reddy,
Your details are a bit confusing, can you elaborate them and let me know. If sharing the information on the weblog is a security constraint for your then use the PM option to discuss.
As Architectures are always subjective and design is objective, it should be considered with grace.
Thanks
June 9, 2009 at 9:13 am
3. Need one common database the maintains the data for all the clients.
4. Each client decides where the database should reside. Either with in my company's data center or within their network.
These two seem mutually exclusive. I don't see how you can have a single database, in multiple locations on different servers.
Either it's one database that contains data for multiple clients, or it's one database per client. I don't see a way around that.
Can you clarify?
- Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
Property of The Thread
"Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon
June 9, 2009 at 9:38 am
This is a Healthcare application. Several Medical Practices/Hospitals will be using the application. We host our application servers at a Data Center.
Our application's DB resides in the Data Center. That DB will need to access the Medical Data on demand. Some clients are okay to send us data and let us keep a snapshot of the data in our servers.
But, Some of the clients do not want the data outside their network. So, we have to put a DB server inside their netwrok and access the data.
Do you have any suggestions? Please provide your feedback. I really appreciate it.
Multi Tenency DBs in one Schema.
Here is what I am thinking - Please be brutal on criticism. I want real good feedback... 🙂
Planning to create a DB for each Customer
Going to Have Three Basic tables - that serves all the customers (This will be in the Main DB.)
One with ALL Customer information along with their DB Name
Second with Customer's User Login/Password information
Third, Common table with List of Values for States etc.
Once the user logs in, based on the user id, we will create dynamic ODBC connection in Web.Config for the session to get Customer Specific data.
What do you think of this? Please give me feedback on this.
June 9, 2009 at 9:40 am
Hi GSquared,
Yes. You are correct on that.
How can we solve if some of my customers want to keep the database inside their network? and some are ready to give it to us?
I just posted more information on what we are working in this thread.
Thanks for your help.
June 9, 2009 at 9:42 am
That's the direction I'd go in, too.
One common database with core, non-sensitive material. One database per customer.
You can put a copy of the common database on the servers for the customers who need it all in their datacenter, just make sure it doesn't have login/account information for any other customers in it.
Makes developing new features a bit trickier, because you have to make changes in more than one place, but makes the whole rest of it much easier. And distributing code changes isn't that big a deal, just something you have to plan for.
- Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
Property of The Thread
"Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon
Viewing 6 posts - 1 through 6 (of 6 total)
You must be logged in to reply to this topic. Login to reply