相关疑难解决方法(0)

为EACH客户端使用单个数据库有什么好处?

在为多个客户端设计的以数据库为中心的应用程序中,我一直认为为所有客户端使用单个数据库"更好" - 将记录与适当的索引和密钥相关联.在收听Stack Overflow播客时,我听到Joel提到FogBugz每个客户端使用一个数据库(所以如果有1000个客户端,则会有1000个数据库).使用这种架构有什么好处?

据我所知,对于某些项目,客户需要直接访问所有数据 - 在这样的应用程序中,很明显每个客户端都需要自己的数据库.但是,对于客户端不需要直接访问数据库的项目,每个客户端使用一个数据库有什么好处吗?似乎在灵活性方面,使用具有表的单个副本的单个数据库要简单得多.添加新功能更容易,创建报告更容易,而且管理起来更容易.

我对"所有客户的一个数据库"方法非常有信心,直到我听到Joel(一位经验丰富的开发人员)提到他的软件采用了不同的方法 - 我对他的决定感到有些困惑......

我听说人们引用数据库会因为大量记录而变慢,但任何具有一些优点的关系数据库都不会出现这个问题 - 特别是如果使用了正确的索引和键.

任何输入都非常感谢!

database database-design multi-tenant

65
推荐指数
7
解决办法
2万
查看次数

我应该为多客户端应用程序使用单个还是多个数据库设置?

我正在开发一个旨在简化公司工作流程和项目管理的PHP应用程序,让我们说像BasecampGoPlan这样的东西.

我不确定最佳方法是什么,数据库方面.我应该使用单个数据库并为每个表添加特定于客户端的列,还是应该为每个新客户端创建数据库?一个重要因素是自动化:我希望创建一个新客户端变得简单(并且可能会为自己注册).

我可以想到使用一个数据库的可能缺点:

  • 缺乏可扩展性
  • 安全问题(虽然首先不应该出现错误)

你对此有何看法?您有什么想法,上述公司最有可能选择哪种解决方案?

architecture database-design multi-tenant database-schema

61
推荐指数
8
解决办法
3万
查看次数