表上的PK与(模拟)多态关联

时间:2013-04-23 13:05:19

标签: sql ms-access primary-key polymorphic-associations

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

有关该表的更多信息:应该使用4个FK中只有1个的逻辑由Access表单强制执行。没有人非开发人员可以直接访问这些表。我希望只要这个数据库正在使用,每个月就会有不超过几百个条目。假设我们每年使用10年,平均每月500个条目(这可能比它将要多一些),我们10年内的参赛作品不应超过6万。基本上,这不是一张人口稠密的桌子。

db和Forms在Access 2003上运行(是的,我知道......)。

我希望有足够的信息帮助我。在下图中,您可以看到现在的表结构。 4个FK是NoDemandeAmendementTransitNoDemandeAmendementRubriqueNoAmendementTransitNoAmendementRubrique

非常感谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

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

相关问题