Multi-Site CMS - a database for each site or one database for all sites?

I am going to write a content management system on several sites in ASP.NET. What will be faster: a database for each site or one database for all sites?

Thanks.

EDIT: If there is a database for each site, which database should I use? XML?

+6
c # database database-design content-management-system
source share
5 answers

A single database for all sites can be a bad choice if you have sites with a lot of visits. In addition, this means that your database tables must be more complex, which slows down the system.

About the format of XML databases is not one of them for sure. Try using MySQL or Postgree, for example.

+3
source share

It really depends on how complex your CMS is, if it's a simple micro-CMS, like a blog, and you have few subscribers to this service, and these subscribers probably have the same functions and functions on their CMS, then one of the bases data may be a choice.

But if your CMS has many granular configuration levels, many functions and functions can potentially have a large dataset for storage. I recommend sharing a database for each instance.

The file database, especially access to this database is not intended for online applications, they can have simultaneous connection restrictions, therefore, when there are many requests received, it can refuse to service your web application.

If you use microsoft technologies, you don’t have much choice for the database, MSSQL is probably the only choice, you can choose SQL Express, but it is not ideal for large sites.

In fact, there are many open source CMSs available, even if you want to choose Microsoft-based cms based on technology, you can try this to get some feel from your design.

good luck.

+2
source share

Since you work with .NET, you may need to take a serious look at SaaSGrid (FYI - I work in Apprenda). You simply write the application as if it were for a single client, but after deployment, SaaSGrid transforms the application into a true multi-tasking SaaS offer. Thus, the question of the data model actually becomes a configuration option for deployment time, and not a solution to the main development time. There are many other advantages, but, in order not to seem commercial, I will leave it to this :-).

Also, here is a good technical article on multi-tenant rentals:

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

Hope this helps.

  • Jessie
+1
source share

One option is to use an application and a database with multiple applications.

For small sites that register and leave (SaaS), this will reduce revenue costs. For large customers who will pay more for support and service, you can always provide them with your own single copy.

As an option, the database can be hosted in the microsoft Cloud "SQl Azure" http://www.microsoft.com/azure/sql.mspx

0
source share

Why do you need to have multiple instances? Do they work with the same data? IF so, you can configure each instance with your own database (msSQL, mySQL, etc.) and use web services to exchange data between them. This would be the most β€œfree” solution :)

0
source share

All Articles