在Access 2010中创建与参照完整性的关系时,“索引太多”错误

时间:2014-04-10 20:30:28

标签: database ms-access indexing referential-integrity

我有一个我认为已归一化的数据库。有一个名为SAMPLES的表,其中包含sampleID作为主键。我有29个与SAMPLES相关的表,每个表都有sampleID作为外键。所有这些关系都是一对多的,并强制执行参照完整性。

我的SAMPLES表存储有关何时以及如何使用以下字段收集科学样本(或样本)的信息:

+ siteID (foreign key) 
+ sampleID (primary key) 
+ dateSample 
+ crew 
+ method
+ comments

29个数据表中的每一个都包括从每个sampleID生成的数据,例如

+ sampleID (foreign key)
+ wetMass_g
+ dryMass_g
+ ashedMass_g
+ organicMass_g
+ pctOrganic
+ replicateID
+ dateAnalyzed

有29种不同的数据表,每种数据类型对应一种:沉积物数据,营养素数据,碳数据,叶绿素数据等等.pampleID允许我将在此期间收集的所有不同类型的样本汇总在一起。相同的抽样事件。

我正在尝试添加一个新表,让我们称之为DATA30,它与SAMPLES的关系也与其余的一样。但是,当我在Access中创建关系时,它给出了一个错误,指出SAMPLES表上有太多索引。我知道表中有32个索引的限制,但我读到的所有内容似乎表明这是一个表中的32个索引字段。我的SAMPLES表有一个主键和一个外键。它还与上述29个其他表相关联。这些关系是否被计为SAMPLES表中的索引?我无法使用sampleID索引来强制超过29个表的参照完整性,这似乎很奇怪。

我对这个错误的理解是什么?我的数据库组织方式不同吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

Access为启用了引用完整性的每个关系创建一个隐藏索引,这意味着每个相关表都有一个额外的索引,使您超越Access 32-index-per-table限制。另请参阅this discussion