We’re rewarding the question askers & reputations are being recalculated! Read more.
    Tweeted twitter.com/#!/StackProgrammer/status/588354060014768128
3 Move links out of question - rather distracting.; edited tags
source | link

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)

Edit: here's the highlights from my research from other sources:

http://programmers.stackexchange.com/questions/105786/

http://programmers.stackexchange.com/questions/83602/

http://programmers.stackexchange.com/questions/109629/

http://programmers.stackexchange.com/questions/141261/

http://msdn.microsoft.com/en-us/library/aa479086.aspx

http://stackoverflow.com/questions/2213006/how-to-create-a-multi-tenant-database-with-shared-table-structures

http://cloudcomputing.sys-con.com/node/1610582

http://blogs.msdn.com/b/cbiyikoglu/archive/2011/03/23/moving-to-multi-tenant-model-made-easy-with-sql-azure-federations.aspx

http://ask.sqlservercentral.com/questions/3615/one-database-or-multiple.html

http://devlicio.us/blogs/anne_epstein/archive/2009/04/24/the-case-for-multiple-dbs-in-multi-tenancy-situations.aspx

http://ayende.com/blog/3497/multi-tenancy-the-physical-data-model

http://www.codeproject.com/Articles/51334/Multi-Tenants-Database-Architecture

http://discuss.joelonsoftware.com/default.asp?design.4.319460.16

http://stackoverflow.com/questions/3479297/multiple-application-using-one-database

http://stackoverflow.com/questions/1676552/single-or-multiple-databases

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-1-strategy.html

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-2-components-and.html

http://www.sqlservercentral.com/Forums/Topic893107-373-1.aspx#bm1047297

 

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)

Edit: here's the highlights from my research from other sources:

http://programmers.stackexchange.com/questions/105786/

http://programmers.stackexchange.com/questions/83602/

http://programmers.stackexchange.com/questions/109629/

http://programmers.stackexchange.com/questions/141261/

http://msdn.microsoft.com/en-us/library/aa479086.aspx

http://stackoverflow.com/questions/2213006/how-to-create-a-multi-tenant-database-with-shared-table-structures

http://cloudcomputing.sys-con.com/node/1610582

http://blogs.msdn.com/b/cbiyikoglu/archive/2011/03/23/moving-to-multi-tenant-model-made-easy-with-sql-azure-federations.aspx

http://ask.sqlservercentral.com/questions/3615/one-database-or-multiple.html

http://devlicio.us/blogs/anne_epstein/archive/2009/04/24/the-case-for-multiple-dbs-in-multi-tenancy-situations.aspx

http://ayende.com/blog/3497/multi-tenancy-the-physical-data-model

http://www.codeproject.com/Articles/51334/Multi-Tenants-Database-Architecture

http://discuss.joelonsoftware.com/default.asp?design.4.319460.16

http://stackoverflow.com/questions/3479297/multiple-application-using-one-database

http://stackoverflow.com/questions/1676552/single-or-multiple-databases

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-1-strategy.html

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-2-components-and.html

http://www.sqlservercentral.com/Forums/Topic893107-373-1.aspx#bm1047297

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)

 
2 Added links to other resources of interest
source | link

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)

Edit: here's the highlights from my research from other sources:

http://programmers.stackexchange.com/questions/105786/

http://programmers.stackexchange.com/questions/83602/

http://programmers.stackexchange.com/questions/109629/

http://programmers.stackexchange.com/questions/141261/

http://msdn.microsoft.com/en-us/library/aa479086.aspx

http://stackoverflow.com/questions/2213006/how-to-create-a-multi-tenant-database-with-shared-table-structures

http://cloudcomputing.sys-con.com/node/1610582

http://blogs.msdn.com/b/cbiyikoglu/archive/2011/03/23/moving-to-multi-tenant-model-made-easy-with-sql-azure-federations.aspx

http://ask.sqlservercentral.com/questions/3615/one-database-or-multiple.html

http://devlicio.us/blogs/anne_epstein/archive/2009/04/24/the-case-for-multiple-dbs-in-multi-tenancy-situations.aspx

http://ayende.com/blog/3497/multi-tenancy-the-physical-data-model

http://www.codeproject.com/Articles/51334/Multi-Tenants-Database-Architecture

http://discuss.joelonsoftware.com/default.asp?design.4.319460.16

http://stackoverflow.com/questions/3479297/multiple-application-using-one-database

http://stackoverflow.com/questions/1676552/single-or-multiple-databases

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-1-strategy.html

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-2-components-and.html

http://www.sqlservercentral.com/Forums/Topic893107-373-1.aspx#bm1047297

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)

Edit: here's the highlights from my research from other sources:

http://programmers.stackexchange.com/questions/105786/

http://programmers.stackexchange.com/questions/83602/

http://programmers.stackexchange.com/questions/109629/

http://programmers.stackexchange.com/questions/141261/

http://msdn.microsoft.com/en-us/library/aa479086.aspx

http://stackoverflow.com/questions/2213006/how-to-create-a-multi-tenant-database-with-shared-table-structures

http://cloudcomputing.sys-con.com/node/1610582

http://blogs.msdn.com/b/cbiyikoglu/archive/2011/03/23/moving-to-multi-tenant-model-made-easy-with-sql-azure-federations.aspx

http://ask.sqlservercentral.com/questions/3615/one-database-or-multiple.html

http://devlicio.us/blogs/anne_epstein/archive/2009/04/24/the-case-for-multiple-dbs-in-multi-tenancy-situations.aspx

http://ayende.com/blog/3497/multi-tenancy-the-physical-data-model

http://www.codeproject.com/Articles/51334/Multi-Tenants-Database-Architecture

http://discuss.joelonsoftware.com/default.asp?design.4.319460.16

http://stackoverflow.com/questions/3479297/multiple-application-using-one-database

http://stackoverflow.com/questions/1676552/single-or-multiple-databases

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-1-strategy.html

http://mikehadlow.blogspot.co.uk/2008/11/multi-tenancy-part-2-components-and.html

http://www.sqlservercentral.com/Forums/Topic893107-373-1.aspx#bm1047297

1
source | link

Multi-tenancy - single database vs multiple database

We have a number of clients, whose systems share some functionality, but also have quite a degree of diversity. The number of clients is growing - always a healthy thing! - and the diversity between their businesses is also increasing.

At present there is a single ASP.Net (Web Forms) Web Site (as opposed to web project), which has sub-folders for each tenant, with that tenant's non-standard pages. There is a separate model project, which deals with database access and business logic.

Which is preferable - and most importantly, why - between having (a) 1 database per client, with only the features associated with that client; or (b) a single database shared by all clients, where only a subset of tables are used by any one client.

The main concerns within the business are over:

  • maintenance of multiple assets - backups, version control and the like
  • promoting re-use as much as possible

How would you ensure these concerns are addressed, which solution is preferable, and why? (I have been also compiling responses to similar questions)