SQL 创建一个临时 Table 或制作一个长期 Table

SQL Create an Interim Table or Make One Long Table

我正在从供应商处导入产品数据,并将其添加到内部产品数据库中。数据首先以原始的、未经验证的形式导入到专用的供应商产品 Table。我想保持原始数据完好无损,以便我可以 link 返回它,但我还需要 clean/validate 在将数据添加到内部产品 Table 之前使数据符合系统要求。请注意,这是一种多对一关系,因为如果这些供应商条目在验证后最终相同,那么多个供应商的产品可能 link 到一个内部产品。

问题是:在“清理”过程中,我应该在哪里存储临时数据——即在所有数据条目被修改为经过验证的形式并可以创建新的内部产品之前? (注意:我想保持原始供应商数据完整,所以我不能直接更改数据。)在我看来有两个主要选择:A)在供应商产品Table上创建额外的列来存储在清理数据时验证条目,或 B) 使用临时 Table 在清理数据时保存经过验证的条目,然后在完全验证后将其推送到内部产品 Table。一旦它被推送,临时 Table 可以被清除。

选项 A 似乎更容易预先设置,但似乎也与规范化规则冲突,因为供应商产品的验证数据 Table 最终将存储与内部产品的重复信息Table.

如有任何想法,我们将不胜感激。

B) Use an Interim Table that will hold validated entries while it is getting cleaned,

乙。它只是为这个过程建模数据的一种更加灵活和稳健的方式。

从角度来看,您正在做的是一种“主数据管理”和 MDM 解决方案,您通常会看到这些东西被分离出来。例如,在 SQL 服务器主数据服务中,您有单独的

  1. 登台表

  2. 发生验证和匹配的主数据“工作表”

  3. 发布视图以投影完成和验证的行。

匹配来自多个源系统的“相同”产品是在“工作表”中完成的,通常是通过引入“Golden Record”,并将来自不同源系统的产品版本链接到“Golden Record”并应用升级和生存规则。