共享客户系统架构

时间:2018-06-14 22:06:38

标签: database-design web-applications server architecture

关于如何构建系统的一般性问题。

我正在考虑建立一个允许企业登录和管理其客户(在特定市场中)的网络系统。

现在我希望他们只需访问我们的网站并点击登录,一旦他们这样做,他们就会登录他们的帐户并查看他们的客户数据。

我遇到的问题是如何构建数据库/应用程序。

第一种选择可能是在自己的服务器上托管“他们的”系统,但这样做成本很高。

第二个选项是将所有数据托管在同一个数据库中,并在customers表中定义它们所属的公司,并将查询编码为仅查找具有相同公司ID的客户。

第三个选项是在同一个Web服务器上托管相同的应用程序文件,但是为每个客户定义逻辑,然后连接到他们自己的数据库(托管在同一服务器上,但在不同的数据库下)。

第二种选择是最简单的但我不喜欢很多不同的企业客户数据在同一张表中,对我来说它应该是分开的。

所以问题是建立这样一个系统以提供最佳安全性同时还能降低成本的最佳方法是什么,例如:没有为每家公司提供服务器?

1 个答案:

答案 0 :(得分:0)

数据库服务器上可以有多个数据库。全部由不同的用户分开。

您可以设置数据库集群(以实现高可用性),并为每个安装提供集群中的一个数据库。

同时将docker和rancher视为虚拟化平台。您可以在同一硬件上启动多个站点,同时将它们全部分离到不同的网络中。