【发布时间】:2013-06-30 00:53:38
【问题描述】:
想象一家公司允许人们使用他们的网络软件来构建网站。每个客户都有一个或多个他们建立的站点,每个站点可能包含一百个“单元”,这些单元包含站点各个部分的 HTML。我们确定每个单元格将仅用于一个站点。所以我们有:
现在我们需要描述每个站点中的单元格。
一种方法是创建一个巨大的(我的意思是巨大的)单元格表,其中包含一百万客户创建的所有单元格。然后每个单元格记录将指向使用它的 siteId。
但似乎应该有一种方法来利用这样的知识,即每个单元格只是其站点中大约一百个单元格中的一个,因此我们可以搜索一个包含 100 个单元格的表格,而不是搜索一个包含 1 亿个单元格的表格单元格,或者只是在我们要构建该站点时询问该表。
感谢您的意见。
【问题讨论】:
-
您可以将公司特定的表保存在单独的数据库中。这样做的好处是如果他们去其他地方可以轻松删除它,并且它增加了更多的安全性以阻止 A 公司看到 B 公司的数据。然后,您可以拥有高级备份服务
-
是的,这是我最初的想法,但现在我们拥有一百万个数据库!这合理吗?
-
似乎很多。根据您的数据库,您可以添加一个聚集索引并将所有行添加到一个表中。您还需要一些应急计划,因为数据库故障会影响所有客户
标签: database database-design multi-tenant