我有一个带有两个数据库的系统,一个面向客户的网站使用,另一个是“后台”订单履行系统使用的数据库。我被要求从网站运行查询到后台系统。我宁愿不这样做,允许基于网络的请求在内部系统上不受欢迎似乎存在风险。此外,这意味着在防火墙中打开路由以允许与内部服务器的外部连接。
电子商务的最佳做法是什么?从一个数据库运行整个公司?或者每个系统的个别数据库,以及连接它们的中间件?
有时,Web应用程序可能需要从内部系统中提取日期,但不是基于来自Internet的HTTP请求。
我确信最好的答案是“这取决于它!”因此,如果人们对何时使用中间件有经验,何时不使用,我想在这里。
答案 0 :(得分:0)
我不愿意,这似乎有风险 允许基于Web的请求运行 在内部系统上没有注意。
更不安全的是使用客户端通过HTTP服务器连接的单个数据库。在不同的安全区域内安装多个数据库是很常见的。
答案 1 :(得分:0)
您可以将事务数据库中的数据复制到只读副本,以便作为相对快速的修复解决方案运行报告查询。但是,对于电子商务,您需要了解PCI并确保遵循其要求来保护敏感的客户/信用卡数据。 PCI Compliance Guide
下一步是构建一个专门用于报告目的的数据仓库 - 使编写查询更容易,并使它们更有效地运行以切片和切块数据 - 从多个角度查看它(维度) )。 Ralph Kimball Data warehouse Guru
答案 2 :(得分:0)
这里有很多选择。
1)数据传送。您可以将数据发送到Web数据库,以便在需要时拥有自己的本地信息缓存。
2)服务。您可以使用接受请求并将数据发回的服务来保护您的内部数据库。这样可以避免对内部数据库的任何直接访问,但是可以为您提供非数据数据的好处,就像在选项1中一样。
3)服务总线。如果你需要这些东西,你可以在两个系统之间粘贴一些中间件来处理诸如保证交付和ETL之类的事情。
基本上,有很多正确的答案 - 还有一些错误的答案......
错误的答案包括将所有内容都放在一个数据库中,允许从Internet直接访问内部数据库,并在两个数据库之间设置链接服务器!