1

我正在尝试在我刚刚创建的包含 4 个“多态关联”和一个 PK 的表上设置正确的索引ID。这 4 个关联使我不必将要添加到数据库的表数增加四倍,并且不应在此讨论中进行修改。我的问题是我应该如何设置索引以获得最佳性能(速度,空间不是那么多)?4 把钥匙都不是 PK 的候选者。更具体地说,所有 4 个都是但一次只有一个。我添加了一个 PK“ID”,因为我读过添加一个 PK,即使不使用,也比不添加一个 PK 要好。然而,我越来越质疑这种说法。

有关该表的更多信息:应该使用 4 个 FK 中的一个的逻辑由 Access 表单强制执行。非开发人员没有人可以直接访问这些表。只要这个数据库还在使用,我预计每个月不会超过几百个条目。假设我们再使用它 10 年并且平均每月 500 个条目(这可能比实际多一点),我们在 10 年内应该有不超过 60k 个条目。基本上,这不是一个人口众多的表格。

数据库和表单在 Access 2003 上运行(是的,我知道......)。

我希望这是足够的信息来帮助我。在下图中,您可以看到现在的表结构。4 个 FK 是NoDemandeAmendementTransit, NoDemandeAmendementRubrique, NoAmendementTransit, NoAmendementRubrique.

非常感谢。

在此处输入图像描述

4

1 回答 1

1

一个更实用的设计是为您引用的所有四个子类型创建一个单一的超类型表。然后使用单个外键而不是四个单独的 FK 来引用超类型表。这是您可以在大多数关于数据库设计的好书中找到的设计模式,它比拥有多个“可选”外键更简单、更有效。它还将为您提供更有用的主键。

于 2013-04-23T19:45:45.163 回答