首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主数据管理.数据冗余

主数据管理.数据冗余
EN

Stack Overflow用户
提问于 2010-02-16 11:54:25
回答 2查看 1.2K关注 0票数 8

我目前正在开发一个系统,该系统保存所有相关的主数据(例如,客户),或者我们的系统环境中存在的关于操作系统的信息。分配给这些实体的ID在企业中是唯一的。当某些系统存储例如与客户相关的数据时,它也必须保存客户的主数据ID。主数据系统基于.Net和MSSQL 2005。

  1. 现在我的问题是,当开发另一个具有自己的程序集、数据库等使用MDM系统数据的系统时,您会将这些数据冗余地存储在其他系统数据库中,创建自己的业务实体(如客户),并在另一个数据库(或由ETL)中硬编码MDM中所需的主数据吗?这样,另一个系统就会脱离MDM,而只存储全局主数据ID。
  2. ,或者您会将MDM的程序集集成到其他系统中(当然,如果是.Net ),并使用MDM的数据层加载全局实体(比如客户)?
  3. ,还是让其他系统创建自己的实体,但是为了检索主数据,需要使用MDM.

提供的SOAP接口。

我倾向于使用方法1,因为我认为最好将其他系统从MDM解决方案中分离出来(分离关注点)。由于MDM解决方案可以保存更多客户实体的数据,所以在其他系统中,只需要客户的名称就可以得到更多的数据。选项3是可能的,但web服务可能会减慢操作系统的运行速度。你认为如何?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-16 12:04:21

  1. --这有很高的风险,会导致数据不同步,接着是一个大麻烦,试图解决这个问题。
  2. --这是一个可行的选择,但你必须维护一套很好的程序集,供人们使用。这是一项非常重要的任务,因为它们需要健壮、文档化、有一个可用的API加上一些合理的发布管理,就像您在任何第三方框架中所期望的那样。我会说,在我的experience.
  3. Got中,这通常是比正常LOB开发实践更严格的一种方式。面向服务的体系结构允许其他人访问数据,但为他们提供了访问/使用数据的灵活性。

正如您所说,性能可能是决定因素-在这种情况下,1和3可能是最好的。也就是说,本地副本只被视为缓存的数据,而不是可靠的最新副本。应用程序可以与主DB进行快速检查,查看本地缓存是否仍然有效(很像HTTP中的HEAD请求),然后使用本地数据或从主数据库刷新它。

票数 5
EN

Stack Overflow用户

发布于 2010-02-16 12:09:59

解决方案1的优缺点如下:

优点:-更快的响应时间(相对于每次操作时必须咨询主程序,您可以缓存一些东西来缓解这种情况)--即使主系统暂时不可用,您的卫星系统也可以工作。

缺点:-你冒着处理过时数据的风险(如果你在午夜进行ETL刷新,你将在下一个午夜周期之前不会得到任何新的或更新的记录)--当然,你不能允许卫星接触到MDM的任何本地副本(双向对齐,特别是与多个不同的卫星的比对成为一场噩梦)。

因此,根据具体情况,解决方案1可能是可以的。我更倾向于每次查询主人(同样,可能会缓存一段时间),但更多的是个人偏好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2272632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档