2013-04-03 79 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運算符來執行它們。樞軸可以使用聚合來實現,並且可以通過連接常量表來實現不透明。

相關問題