3

如何创建像 37signals 这样的账户系统,即:

每个用户都有一个独立的 URL。user.domain.com 每个用户都可以添加一定数量的用户:

当他们为账户分配资源时,你认为这一切都在一个数据库中,还是他们为每个账户创建一个单独的数据库?

4

2 回答 2

2

您可以对用户子域使用两种方法之一 - 您可以使用 HTAccess 重写规则将子域转移回加载其帐户的 .php?sub=user 页面 - htaccess 将子域重定向到域 或(假设您是在 CPanel Hosting 上)有一些关于如何仅使用 PHP 和 cURL 自动创建和指向子域的示例 - http://www.zubrag.com/scripts/cpanel-subdomains-creator.php

虽然我不确定 37signals 数据库是如何工作的,但我怀疑他们是否会为每个用户创建一个新数据库——更像是他们只是在索引上链接多个表。如果以前不知道这些字段,那么您可以使用简单的 EAV 方案来允许用户定义自己的数据字段。

于 2012-01-06T21:31:51.020 回答
2

我知道使用 nginx,您可以设置默认的“服务器”(如果子域实际上不存在,则所有子域都重定向到一个文档根目录)。然后,由 PHP 脚本来解析主机头。通过这种虚拟主机设置,您将使用已经存在的数据库。

NginX 服务器和 Server_Name 参考

于 2012-01-06T21:38:14.607 回答