我想有一个网站,让用户创建自己的网站。像wordpress.com或drupalgardens.com。我应该如何为子网站创建数据库?
我的问题是我应该如何为用户网站创建数据库?我应该为每个用户创建一个单独的数据库吗?我应该创建一些数据库并为每个用户使用不同的表前缀?
是否有成千上万的数据库导致性能问题?
我想有一个网站,让用户创建自己的网站。像wordpress.com或drupalgardens.com。我应该如何为子网站创建数据库?
我的问题是我应该如何为用户网站创建数据库?我应该为每个用户创建一个单独的数据库吗?我应该创建一些数据库并为每个用户使用不同的表前缀?
是否有成千上万的数据库导致性能问题?
为每个用户创建一个数据库,它会使权限问题和命名空间错误的可能性降低,并且会使您像使用mysql的权限系统一样。 AFAIK这是大多数共享主机系统的工作原理。
如果不是因为开销,我会为每个用户创建一个单独的MySQL实例,但此时你半路上虚拟化整个系统,并使其成为一个VPS :)
如果你不介意有很多表格,也不担心你的用户权限:你可以有一个包含每个网站的“master_table”,它是唯一的ID。 基础上的ID,您可以创建表的前缀,如:
一般来说,不要使用一个数据库,并在相关的数据库上有一列标记谁拥有它。你会发现你将会有一些共同的表格,你想要加入到特定于用户的表格中,然后你需要进入跨模式联接以及什么都不需要 - 这可能会有些尴尬。 – halfer 2012-03-27 09:31:48
用户是否可以直接访问他们的数据库? – Baba 2012-03-27 09:31:53
是的。他们可以导出他们的数据库 – user16948 2012-03-27 09:32:44