views:

69

answers:

1

If I had a web shop application and I'd want to provide it to multiple customers, who sell their products from the web shop, how would I design such application when it comes to deployment?

  • One application with one database on a central server. Every data row has a customer ID which states to which customer ("shop instance") it belongs.

OR

  • Every customer has its own copy of the web shop with its own database and its own (virtual) server.

OR

  • [your idea here]
+1  A: 

I would make it a "boxed product" - each customer has their own web shop and their own database. If one customer turns out to be as busy as Amazon, you can scale out their implementation easily (i.e. slam it on a dedicated server when it gets quite busy, then onto a server farm when it goes completely nuts). If you have a customer who feels very proprietry about their customer data (i.e. they don't want any chance of someone else getting to it) it will ease their mind to know that their data is in their own data store.

This also gives you a couple of sales options. A hosted solution, where you create and host their shop, and a licensed solution, where they host it on their own servers.

Sohnee
I didn't think about the sales options. Very good idea!
DR