gpt4 book ai didi

c# - 主数据管理 - 数据冗余

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:04 24 4
gpt4 key购买 nike

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

  1. 现在我的问题是,当使用 MDM 系统的数据开发另一个具有自己的程序集、数据库等的系统时,您是否会将该数据冗余地存储在其他系统数据库中,创建自己的业务实体(如客户)并将来自 MDM 的所需主数据硬编码到其他数据库中(或通过 ETL)?这样另一个系统就与 MDM 分离,但只存储全局主数据 ID。

  2. 或者您是否会将 MDM 的程序集集成到其他系统(当然如果是 .Net)并使用 MDM 的数据层加载全局实体(如客户)?

  3. 或者您会让其他系统创建它自己的实体,但为了检索主数据,您将使用 MDM 提供的 SOAP 接口(interface)。

我倾向于使用第一种方法。 1 因为我认为最好将其他系统从 MDM 解决方案中分离出来(关注点分离)。由于 MDM 解决方案可以保存比我在仅需要客户名称的其他系统中所需的更多的客户实体数据。选项 3 是可行的,但 Web 服务可能会大大降低操作系统的速度。你怎么看?

最佳答案

  1. 这会带来数据不同步的高风险,随后在试图解开它时会非常头疼。

  2. 这是一个可行的选择,但您必须维护一组体面的程序集供人们使用。这是一项非常重要的任务,因为它们需要稳健、有据可查、具有可用的 API 以及一些合理的发布管理,就像您对任何第 3 方框架的期望一样。根据我的经验,这通常比正常的 LOB 开发实践严格。

  3. 必须是我要说的方式。面向服务的架构允许其他人访问数据,但让他们可以灵活地访问/使用数据。

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

关于c# - 主数据管理 - 数据冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com