我希望有一个网站,让用户可以创建自己的网站。像wordpress.com或drupalgardens.com这样的东西。
我的问题是如何为用户网站创建数据库?我应该为每个用户创建一个单独的数据库吗?我应该为每个用户创建一些数据库并使用不同的表前缀吗?
数千个数据库是否会导致性能问题?
答案 0 :(得分:4)
为每个用户创建一个数据库,它会使权限问题和命名空间错误的可能性降低,并且会使你使用mysql的权限系统。 AFAIK这就是大多数共享托管系统的工作方式。
如果不是为了开销,我会为每个用户创建一个单独的MySQL实例,但是你可以将整个系统虚拟化,并将其变成VPS:)
答案 1 :(得分:3)
如果您不介意拥有大量表格,并且不担心您的用户权限:您可以拥有一个“master_table”,其中包含每个网站及其唯一ID。 根据该ID,您可以创建表格前缀,如:
答案 2 :(得分:2)
只是补充说,如果你真的很聪明,你可以使用单个Drupal安装和多个站点(谷歌drupal多站点)的多个数据库。