【问题标题】:What is this type of data transformation called?这种类型的数据转换叫什么?
【发布时间】:2013-03-25 19:03:36
【问题描述】:

与同事讨论数据结构时,我被提醒我使用从“模式 A”转换为“模式 B”,这被认为是“规范化/反规范化”或模式转换还是什么?任何见解将不胜感激。

“架构 A”

表A ID 键值 ------------ 1 A 23 1 B 250 2 乙 100 表B 关键描述 --------------- 一个时代 B 重量

“模式 B”

表C 身份证年龄体重 -------------- 1 23 250 2 无 100

【问题讨论】:

  • 我冒昧地编辑了标题。希望您同意修改。
  • 模式 A 称为 EAV 模式 (EntityAttributeValue)。模式 B 是一个“正常”的 3 列表。该操作在 SQL 术语中称为 PIVOT(-ing),在数学(和 SAS)中称为 TRANSPOSE
  • 正如@usr 刚刚提醒我的那样,它们都已标准化。如果您对最适合您的需求感兴趣,这可能会对您有所帮助。 stackoverflow.com/questions/870808/…

标签: database normalization denormalization


【解决方案1】:

这称为旋转

如果没有更好的参考,我会链接到SQL Server's implementation of PIVOT

反向称为unpivot

您不需要特殊的 SQL 运算符来执行它们。 Pivot 可以使用聚合来实现,而 unpivot 可以通过加入一个常量表来实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2012-04-01
    相关资源
    最近更新 更多