【问题标题】:how to allow orphan recordsets in many-to-many bridge tables如何在多对多桥表中允许孤立记录集
【发布时间】:2010-09-15 12:35:31
【问题描述】:

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

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

table soft-pc 还包含许可信息,例如产品密钥。

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

这可能吗?

【问题讨论】:

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


    【解决方案1】:

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

    这是问题的核心。目前,soft-pc 表的关系谓词(即,该表中有特定记录的含义是指相关软件在相关 PC 上) .如果您现在想说当该 PC 上没有该软件时,此表中可能有记录,您将必须决定新的关系谓词是什么。也就是说:

    soft-pc 表中有记录意味着什么

    【讨论】:

    • 这不是真正的答案。这是一条要求澄清的评论。
    【解决方案2】:

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

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

    我倾向于选择#1。

    重新编辑附加帖子

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

    【讨论】:

    • 呃,不能保留级联删除吗?联接表在这两种关系的多方面,因此删除 PC 及其相应的联接记录不会触发软件表上的级联删除。
    • 我以为你有它用于级联删除?
    • 合适的时候我全力支持,不合适的时候反对。
    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多