代码之家  ›  专栏  ›  技术社区  ›  Marci-man

如何允许多对多桥接表中的孤立记录集

  •  1
  • Marci-man  · 技术社区  · 14 年前

    我有一个似乎解决不了的问题。 我有桌子:软件 和桌子:PC

    它们之间都有多对多的关系,即一台电脑可以有多个软件,一个软件可以有多台电脑 链接表是:软PC

    Table Soft PC还具有许可信息,如产品密钥。

    现在的问题是,当软件从PC中删除时,记录将从软PC表中删除。现在,我想能够取消关联软件从PC机,并仍然有他们在软PC表。

    有可能吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   AakashM    14 年前

    现在,我想能够取消关联软件从PC机,并仍然有他们在软PC表。

    这是问题的核心。目前,关系谓词 soft-pc 桌子-那是什么? 方法 在这张表中有一个特殊的记录——所讨论的软件在所讨论的PC上。如果你现在想说有可能在这个表中有一个记录 不是 在那台电脑上的软件,你必须决定新的关系谓词是什么。也就是说:

    什么 这意味着在 软PC 桌子?

        2
  •  1
  •   Fionnuala    14 年前

    您将需要从关系中删除级联删除,之后,我将出现两种可能性:

    1. 将删除的日期添加到软PC
    2. 将pc id移动到另一列-这仅在唯一键不是pcid+软id时才有效。

    我倾向于和1一起去。

    编辑重新附加日志

    如果您愿意,您可以有一个连接表,其中包含所有可能的PC软件组合和一个代码,用于指示软件是否已安装、卸载、从不安装等,以及状态发生的日期。这种方法有很多话要说。