2013-04-03 57 views
1

与同事讨论数据结构,并提醒我使用“Schema A”转换为“Schema B”,这是否被认为是“规范化/非规范化”或模式转换?任何洞察力将不胜感激。什么是这种类型的数据转换?

“架构A”

 
TableA 
ID KEY Value 
------------ 
1 A 23 
1 B 250 
2 B 100 

TableB 
Key Description 
--------------- 
A Age 
B Weight 

“架构B”

 
TableC 
ID Age Weight 
-------------- 
1 23 250 
2 NULL 100 
+0

我冒昧地编辑标题。希望你同意编辑。 – usr 2013-04-03 22:06:27

+0

模式A被称为EAV模式(EntityAttributeValue)。模式B是“正常”3列表。该操作在SQL中称为PIVOT(-ing),或者在数学(和SAS)中称为TRANSPOSE – wildplasser 2013-04-03 22:07:07

+1

正如@usr提醒我的那样,它们都是正常化的。如果您对哪种产品最适合您的需求感兴趣,这可能对您有所帮助。 http://stackoverflow.com/questions/870808/entity-attribute-value-database-vs-strict-relational-model-ecommerce-question – PeteGO 2013-04-03 22:22:00

回答

0

这被称为枢转

缺少更好的参考我会链接到SQL Server's implementation of PIVOT

反过来叫做unpivot

您不需要特殊的SQL运算符来执行它们。枢轴可以使用聚合来实现,并且可以通过连接常量表来实现不透明。

相关问题