我应该如何为子网站创建数据库?

时间:2012-03-27 09:27:49

标签: php mysql drupal

我希望有一个网站,让用户可以创建自己的网站。像wordpress.com或drupalgardens.com这样的东西。

我的问题是如何为用户网站创建数据库?我应该为每个用户创建一个单独的数据库吗?我应该为每个用户创建一些数据库并使用不同的表前缀吗?

数千个数据库是否会导致性能问题?

3 个答案:

答案 0 :(得分:4)

为每个用户创建一个数据库,它会使权限问题和命名空间错误的可能性降低,并且会使你使用mysql的权限系统。 AFAIK这就是大多数共享托管系统的工作方式。

如果不是为了开销,我会为每个用户创建一个单独的MySQL实例,但是你可以将整个系统虚拟化,并将其变成VPS:)

答案 1 :(得分:3)

如果您不介意拥有大量表格,并且不担心您的用户权限:您可以拥有一个“master_table”,其中包含每个网站及其唯一ID。 根据该ID,您可以创建表格前缀,如:

  • 1234_settings
  • 1234_users
  • 5262_settings
  • 5262_users

答案 2 :(得分:2)

只是补充说,如果你真的很聪明,你可以使用单个Drupal安装和多个站点(谷歌drupal多站点)的多个数据库。