在为多个客户端设计的以数据库为中心的应用程序中,我一直认为为所有客户端使用单个数据库“更好” - 将记录与适当的索引和键相关联。在收听 Stack Overflow 播客时,我听到 Joel 提到 FogBugz 每个客户端使用一个数据库(因此,如果有 1000 个客户端,则将有 1000 个数据库)。使用这种架构有什么好处?
我知道对于某些项目,客户需要直接访问他们的所有数据——在这样的应用程序中,很明显每个客户都需要自己的数据库。但是,对于客户端不需要直接访问数据库的项目,每个客户端使用一个数据库有什么好处吗?似乎就灵活性而言,使用具有单个表副本的单个数据库要简单得多。添加新功能更容易,创建报告更容易,并且更易于管理。
在我听到 Joel(一位经验丰富的开发人员)提到他的软件使用不同的方法之前,我对“所有客户的一个数据库”方法非常有信心——我对他的决定有点困惑......
我听说有人提到数据库会因大量记录而变慢,但任何具有某些优点的关系数据库都不会出现这个问题——尤其是在使用适当的索引和键的情况下。
非常感谢任何输入!