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

时间:2010-09-15 12:35:32

标签: many-to-many ms-access-2007 cascading-deletes

我有一个似乎无法解决的问题。 我有桌子:软件 和表:PC

他们彼此之间有很多很多关系,也就是说,一台PC可以有很多软件而一台软件可以有很多PC的 链接表是:soft-pc

表soft-pc还有许可信息,例如产品密钥。

现在问题是,当从PC删除软件时,记录将从soft-pc表中删除。现在我希望能够从PC上取消关联软件,并将它们保存在软PC表中。

这可能吗?

2 个答案:

答案 0 :(得分:2)

  

现在我希望能够从PC上取消关联软件并将它们保存在软PC表中。

这是问题的核心。目前,soft-pc表的关系谓词 - 也就是对于此表中的特定记录意味着 - 是有问题的软件在PC上有问题。如果您现在想说当该表中的不是那个软件时,该表中可能有记录,那么您将不得不决定新的关系谓词是什么。这就是说:

答案 1 :(得分:1)

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

  1. 将已删除的日期添加到软PC
  2. 将PC ID移至另一列 - 仅当唯一键不是PCID + Soft ID时才会起作用。
  3. 我倾向于选择#1。

    编辑附加帖子

    如果您愿意,您可以拥有一个包含所有可能的PC-Soft组合的联结表和一个代码,以指示软件是否已安装,卸载,永不安装等,以及状态的日期发生了。这种方法有很多话要说。