网站构建器的数据库

时间:2013-06-28 22:17:15

标签: database database-design multi-tenant

想象一家让人们使用他们的网络软件来构建网站的公司。每个客户都有一个或多个他们已经构建的站点,每个站点都包含一百个“单元”,用于保存站点各个部分的HTML。我们肯定知道每个单元格只能在一个站点中使用。所以我们有:

enter image description here

现在我们需要描述每个站点中的单元格。

一种方法是拥有一个巨大的(我的意思是巨大的)单元格表,其中包含由一百万客户创建的所有单元格。然后每个单元格记录将指向使用它的siteId。

但似乎应该有一种方法可以利用每个单元格只有一百个左右的知识,因此我们可以搜索一个包含100个单元格的表格,而不是搜索一个包含100个单元格的表格。单元格,或者只是在我们想要构建该网站时询问该表格。

感谢您的意见。

1 个答案:

答案 0 :(得分:1)

  

一种方法是拥有一个巨大的(我的意思是巨大的)单元格表   包含由一百万客户创建的所有单元格。然后在每个   细胞记录的一行我们指回使用它的siteId。

这可能就是我要去的路线。当您使用适当的性能调整技术时,大多数现代数据库都可以处理具有数亿行的表。

我不是肯定的,但听起来您正在考虑将每个网站的单元格放在特定于网站的表格中,以便保持每个表格中的行数减少。如果这是真的,那么在遇到任何性能问题之前,您似乎正在尝试过度优化。

我会专注于创建一个设计良好的规范化数据库,如果遇到性能问题,我会回到这里讨论具体的性能问题。