Web应用程序 - 每个客户一个数据库或所有客户一个数据库?

时间:2015-04-15 04:10:07

标签: php mysql database database-schema

我必须为我的一个客户制作一个电子邮件营销应用程序,在这个应用程序中,每个客户需要管理大约10万的平均联系人列表。

因此,对于每个客户,我应该创建一个数据库并复制模式或将所有客户组合在一个数据库中。例如:一个表中的所有联系人,并将其与customer_id

区分开来

我想知道制作网络应用程序的最佳建议是什么,每个客户都需要管理大量的注册表。

也有可能某些客户(大公司)需要私人安装该应用程序。

请告诉我您在此类应用中的体验。

谢谢。

2 个答案:

答案 0 :(得分:0)

共享的集中式数据库几乎总是最佳路径。试图分别处理中等数量的客户是一场噩梦。想想代码更新,补丁,修复等。数据库现在是强大的,可以轻松处理您所指的记录数量,所以不用担心。自从90年代后期以来,我一直在构建这些类型的系统,并且不止一次地考虑过这种情况。单个,共享DB肯定。祝你好运!

答案 1 :(得分:0)

我的建议是使用一个快速的关系数据库,以便数据集中并准备好进行查询。我会进一步推荐Postgres,因为它有很好的功能,如UID'saudit triggerstable partitioning

让所有客户和客户保持在同一个数据库中,您还可以轻松对整个客户的趋势进行大数据分析。将其与单个数据库上每个客户的运行分析进行比较......这将是一场噩梦。

Postgres还有一种方便的方法将表格组织成" schemas"。您可以拥有客户架构和所有客户相关信息,客户架构和所有客户相关信息,计费信息架构,数据分析结果架构等。