Database design 共享客户系统架构

Database design 共享客户系统架构,database-design,web-applications,server,architecture,Database Design,Web Applications,Server,Architecture,这是一个关于如何构建系统的一般性问题 我正在考虑建立一个网络系统,允许企业登录和管理他们的客户(在特定市场内) 现在,我希望他们只需进入我们的网站,点击登录,一旦他们这样做,他们将登录到他们的帐户,并看到他们的客户数据 我遇到的问题是数据库/应用程序的结构 第一种选择可能是将“他们的”系统托管在他们自己的服务器上,但这是昂贵的 第二种选择是将所有客户托管在同一个数据库中,并在customers表中定义他们所属的公司,并对查询进行编码,以仅查找具有相同公司id的客户 第三种选择是将相同的应用程序文

这是一个关于如何构建系统的一般性问题

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

现在,我希望他们只需进入我们的网站,点击登录,一旦他们这样做,他们将登录到他们的帐户,并看到他们的客户数据

我遇到的问题是数据库/应用程序的结构

第一种选择可能是将“他们的”系统托管在他们自己的服务器上,但这是昂贵的

第二种选择是将所有客户托管在同一个数据库中,并在customers表中定义他们所属的公司,并对查询进行编码,以仅查找具有相同公司id的客户

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

第二个选项是最简单的,但我不喜欢很多不同的业务客户数据在同一个表中,对我来说,应该是分开的


因此,问题是构建这样一个系统的最佳方式是什么,以提供最佳的安全性,同时降低成本,例如,每个公司都没有服务器?

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

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

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