1

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

它们之间有多对多的关系,即一台PC可以有很多软件,而一台软件可以有很多PC的链接表是:soft-pc

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

现在的问题是,当从 PC 中删除软件时,该记录会从 soft-pc 表中删除。现在我希望能够将软件与 PC 取消关联,并且仍然将它们放在软 PC 表中。

那可能吗?

4

2 回答 2

2

现在我希望能够将软件与 PC 取消关联,并且仍然将它们放在软 PC 表中。

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

表中有记录是什么意思soft-pc

于 2010-09-15T19:30:24.003 回答
1

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

  1. 将删除的日期添加到软 PC
  2. 将 PC ID 移动到另一列 - 仅当唯一键不是 PCID + 软 ID 时才有效。

我倾向于选择#1。

编辑重新附加帖子

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

于 2010-09-15T13:44:16.857 回答