【问题标题】:How to normalize three identical tables into one table?如何将三个相同的表归一化为一个表?
【发布时间】:2023-01-24 23:09:31
【问题描述】:

我有三个表,例如:

类别 1:

id(PK)
name
description

类别 2:

id(PK)
name
description
cat1_id1(FK)

三类

id(PK)
name
description
cat2_id(FK)

关系是:cat1 有一对多的 cat2,cat2 有一对多的 cat3。

所以我的问题是。如何将三张表归一化为一张表?

【问题讨论】:

  • 这些表是如何相关的——你说 1 到很多但你没有显示外部键

标签: database database-design normalization


【解决方案1】:

我猜你的桌子实际上是这样的

类别 1:

id
cat2id
name
description

类别 2:

id
cat3id
name
description

三类

id
name
description

在我添加的列中,一对多关系由它们相关的 id 表示。

在那种情况下,你可以像这样加入他们

SELECT * -- should have column list here
FROM cat1
LEFT JOIN cat2 on cat1.cat2id = cat2.id
LEFT JOIN cat3 on cat2.cat3id = cat3.id

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    相关资源
    最近更新 更多