如何在每个用户的应用程序上创建新的数据库或数据库实例?

时间:2013-03-23 14:02:07

标签: php mysql cakephp partitioning multi-tenant

如您所知,当您拥有类似博客的应用程序时,用户可以发布文章,图库,创建静态页面,编辑者编辑它们......

您有以下表格:

  • 文章
  • 作者
  • 编辑
  • 画廊
  • 静态页面 等。

如果您想创建一个博客服务,每个用户都可以创建自己的博客,该怎么办?

当我们再次查看上面的示例时,我们必须在每个表上创建一些额外的表和字段。

有些用户可以订阅我们的服务,并创建他们的博客:

订户 博客     subscriber_id 作者     blog_id 编者     blog_id 画廊     blog_id 静态页面     blog_id

如果用户拥有该博客,已获得授权等等,您必须检查每个请求。

如您所见,这使得简单的博客软件非常复杂。

有没有这样的应用程序或云服务,我可以在我的软件上使用它api并使用应用程序sql创建一个新的干净数据库实例,当我的用户注册并开始使用他们的服务时?

我现在非常坚持...任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我有点困惑。

  1. 您想拥有一个博客服务,人们可以在这里注册并获得自己的博客网站吗?
  2. 您想将每个新博客用户放在一个单独的数据库中吗?
  3. 除非您计划拥有数十万用户,否则您只需要启动一个数据库。

    我认为您不需要创建额外的表格或字段。链接到作者的所有表都应该已经有author_id字段或连接表。

    所以.. 博主在注册时将被投入作者。

    作者将包含ID。

    所有其他表将通过id字段或连接表与该id相关。所以,如果你从文章,画廊等中选择... 你只需要做

    SELECT * FROM articles WHERE author_id = 1234