0

我用 CodeIgniter 编写了一个 PHP 应用程序。我计划将其作为托管应用程序(软件即服务)出售。

这些应用程序允许用户:

  • 创建帐户
  • 创建用户
  • 管理文件
  • 管理订单
  • 有通讯录
  • 搜索
  • 报告等。它使用一个数据库。最好的例子是新书。(反正它不是我的竞争对手。)

我的问题是:

托管应用程序的最佳配置是什么?请记住,该应用程序可以增长到数千名用户。

实际配置是:

  1. 代码 example.com/appfolder 的一个地方
  2. 用户将在 example.com 上创建帐户
  3. 在用户帐户上,每个用户都有一个使用该应用程序的链接

user1.example.com

user2.example.com

.....................

所有子域都指向同一个 example.com/appfolder

  1. example.com 有一个数据库,用于记录用户及其每月付款
  2. 该应用程序托管在 example.com/appfolder 上,并根据 url 为每个用户选择一个单独的数据库。

对于 100、200、300 个用户来说,一切看起来都很好,但如果我有 1000 或 2000 个用户,我将不得不管理和备份 1000 或 2000 个数据库(每个 3-5MB)

我知道我应该为所有用户提供一个数据库,但这将使其非常难以管理,并且用户数据库中有敏感数据。

最重要的是,用户可以创建可以使用相同应用程序的用户,但只能在管理员用户创建的子域上(在 exmaple.com 上注册)

这种配置会使拥有超过 2000 个管理员用户(这意味着 2000 db)的专用服务器崩溃吗?

Basic 与 CMS 非常相似,但更专业。

有没有更实用的方法来做这个配置?

任何建议将不胜感激。提前谢谢了。

4

1 回答 1

1

为所有用户存储数据的单个数据库或分片数据库 ( http://www.codefutures.com/database-sharding/ ) 比 2000 个数据库更快、更易于维护、更简单且全面优于 2000 个数据库。

编写管理安全性所需的代码,否则当您试图通过一个小的架构更改来更新 2000 个数据库时,您会自责。

我的建议是使用单个域(没有子域),一旦你有 2000 个用户,你就会有钱和资源来改进。

于 2013-02-23T07:49:33.267 回答