【问题标题】:ERD - Recursive relationship with two primary keysERD - 具有两个主键的递归关系
【发布时间】:2021-02-18 08:31:56
【问题描述】:

我有一个产品表:

产品(ID、版本)

我在创建名为“Update”的递归表时遇到了麻烦。 此表应该有一个产品 ID,并且对于每个产品,都会有一个旧版本和一个新版本。

这是我想要的结果:

更新(ProductID、OldVersion、NewVersion)

但不幸的是,如果我有两个主键,结果将是:

更新(NewProductID、NewVersion、OldProductID、OldVersion)

我该如何解决这个问题?

【问题讨论】:

  • 嗨。我希望你不介意评论this recent deleted question of yours。如果您仍然愿意,我想为您提供帮助,我对您的帖子如何形成以及我的 cmets 是否有帮助感兴趣。每个帖子部分的答案甚至是一系列答案中的每一个都可能很简单和/或重复,但现在还不清楚问题是什么。 (困难来自于 set vs bag & from null=null vs not,而不是来自 full join 本身。)这就是我在那里评论的原因,你从什么背景和问题开始?谢谢。

标签: sql recursion attributes entity erd


【解决方案1】:

在 UPDATE 中,您需要将 PK 设置为 ProductID 以及 OldVersion 或 NewVersion。另一个版本 ID 是该表的一个属性。选择哪个版本 ID 作为 PK 的一部分并不重要(从技术角度来看,它可能会从可用性/业务角度有所不同),但显然您需要保持一致。

【讨论】:

    猜你喜欢
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多