我需要一组asp.net MVC网站如下:
多个站点,使用相同的代码库,但每个站点都有一个单独的数据库(这是一项要求),用户将登录并输入数据。
超级用户的单个网站,他们登录并处理从每个网站汇总的数据。
当我们向更多客户推出时,第一点中的网站数量可能会扩大。
我的问题是关于上述架构 - 如何管理数据聚合,因为它需要是实时的。我们是在数据库级别(例如,基本上是各个站点数据库之间的联合的视图)还是在应用程序级别维护它。
一些基础设施点:
我们完全控制数据库服务器和数据库命名。
所有这些网站都部署在我们管理的服务器上。
我很感激以前可能做过这些事情的人的任何意见/想法。
答案 0 :(得分:0)
数据聚合必须是完全实时的,还是几乎可以实时逃脱?如果“几乎是实时”是可接受的,那么您可以编写一个服务应用程序,将来自站点数据库的数据收集到您的单个中央数据库中。只要进程连续运行并且您没有太多站点从延迟中收集数据,对于用户来说应该或多或少是不可见的。
拥有一个累积来自所有数据库的数据的视图听起来不是一个好的解决方案。它不仅可能非常慢,而且每当您添加新站点时,您还必须更新视图。
超级用户网站的意图是什么,顺便说一下?它仅用于报告还是超级用户也应该编辑所有站点的数据?这可能会影响您选择的解决方案。