2012-03-27 74 views
2

我想有一个网站,让用户创建自己的网站。像wordpress.com或drupalgardens.com。我应该如何为子网站创建数据库?

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

是否有成千上万的数据库导致性能问题?

+0

一般来说,不要使用一个数据库,并在相关的数据库上有一列标记谁拥有它。你会发现你将会有一些共同的表格,你想要加入到特定于用户的表格中,然后你需要进入跨模式联接以及什么都不需要 - 这可能会有些尴尬。 – halfer 2012-03-27 09:31:48

+0

用户是否可以直接访问他们的数据库? – Baba 2012-03-27 09:31:53

+0

是的。他们可以导出他们的数据库 – user16948 2012-03-27 09:32:44

回答

4

为每个用户创建一个数据库,它会使权限问题和命名空间错误的可能性降低,并且会使您像使用mysql的权限系统一样。 AFAIK这是大多数共享主机系统的工作原理。

如果不是因为开销,我会为每个用户创建一个单独的MySQL实例,但此时你半路上虚拟化整个系统,并使其成为一个VPS :)

3

如果你不介意有很多表格,也不担心你的用户权限:你可以有一个包含每个网站的“master_table”,它是唯一的ID。 基础上的ID,您可以创建表的前缀,如:

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

我想补充,如果你感觉真的很聪明,你可以使用单个Drupal安装和多个数据库与多站点(谷歌Drupal多站点)。

+0

我正在做你所说的 – user16948 2012-03-27 13:05:49

相关问题