我目前正在开发一个系统,该系统保存所有相关的主数据(例如,客户),或者我们的系统环境中存在的关于操作系统的信息。分配给这些实体的ID在企业中是唯一的。当某些系统存储例如与客户相关的数据时,它也必须保存客户的主数据ID。主数据系统基于.Net和MSSQL 2005。
提供的SOAP接口。
我倾向于使用方法1,因为我认为最好将其他系统从MDM解决方案中分离出来(分离关注点)。由于MDM解决方案可以保存更多客户实体的数据,所以在其他系统中,只需要客户的名称就可以得到更多的数据。选项3是可能的,但web服务可能会减慢操作系统的运行速度。你认为如何?
发布于 2010-02-16 12:04:21
正如您所说,性能可能是决定因素-在这种情况下,1和3可能是最好的。也就是说,本地副本只被视为缓存的数据,而不是可靠的最新副本。应用程序可以与主DB进行快速检查,查看本地缓存是否仍然有效(很像HTTP中的HEAD请求),然后使用本地数据或从主数据库刷新它。
发布于 2010-02-16 12:09:59
解决方案1的优缺点如下:
优点:-更快的响应时间(相对于每次操作时必须咨询主程序,您可以缓存一些东西来缓解这种情况)--即使主系统暂时不可用,您的卫星系统也可以工作。
缺点:-你冒着处理过时数据的风险(如果你在午夜进行ETL刷新,你将在下一个午夜周期之前不会得到任何新的或更新的记录)--当然,你不能允许卫星接触到MDM的任何本地副本(双向对齐,特别是与多个不同的卫星的比对成为一场噩梦)。
因此,根据具体情况,解决方案1可能是可以的。我更倾向于每次查询主人(同样,可能会缓存一段时间),但更多的是个人偏好。
https://stackoverflow.com/questions/2272632
复制相似问题