2013-06-30 50 views
0

我有一个具有多个系统的传统IT环境,每个系统都有其自己的数据库,它引用了有关我们客户的相同数据。即销售系统,会计系统和操作系统,所有这些系统都有关于相同客户,账户和产品的数据。集成2nf和3nf数据库

在某些情况下,这些数据存储在2nf中,有些情况下存储在3nf中。是否有最佳实践或已知算法来整合这两者?

E.g.有没有办法在3nf销售系统中对客户进行更改,然后在2nf操作系统中可靠地更新关于客户的相同信息?

感谢,

EAN

回答

0

有没有一种方法,使在3NF销售系统的变化给客户,然后可靠更新有关在2NF业务系统客户相同的信息?

不是没有很多的努力工作。

在一般情况下,进行这项工作的唯一方法是将匹配键存储在表中,并使用这些匹配键传播更改。还有很多事情可能会阻止这些工作。

  • 列宽不兼容。
  • 不兼容的权限。
  • 不兼容的约束。
  • 缺少数据。
  • 重复的数据。

匹配键可能涉及大量的实践工作。例如,假设“客户”有五行,客户名称为“David Small”,操作系统有三行。有多少“大卫小号”在那里?他们如何匹配?你不能单独说出名字。您必须深入了解其他数据 - 地址,购买历史记录等。无法提前告知您需要多少数据以及您何时完成数据仍然可能无法分辨哪个匹配哪个。自动化很难。

+0

感谢您的支持。 假设数据已经清理完毕并且在所有系统中都被准确复制,那么存储匹配密钥的方法将如何工作? 你是否建议我可以添加一个关键列到2nf表,只要3nf表有fk? 因此,如果客户2NF系统有一个表“客户”是这样的: ** FNAME,LNAME,地址,公司** 我想一个新的领域companyid添加到客户,所以它看起来是这样的: ** fname,lname,address,company,companyid ** 对不对? 谢谢, Ean – ean

+0

不,你不应该改变现有的表。而是创建一个新表,其中包含2NF表中的主键列和3NF表的主键列。您需要仔细观察具有传递依赖关系的表 - 使用关键映射表可能不足以保证一致的更新。 –