avi*_*ada 7 indexing ms-access relationship
我有tblUsers,其主键是UserID.
UserID在许多表中用作外键.在表中,它用作多个字段的外键(例如ObserverID,RecorderID,CheckerID).
我已成功添加了关系(在MS Access'关系'视图中),其中我有表别名来执行每个表的多个关系:
*tblUser.UserID - > 1到多 - > tblResight.ObserverID
*tblUser_1.UserID - > 1到多 - > tblResight.CheckerID
在使用参照完整性的强制创建约25个关系后,当我尝试添加另一个时,我收到以下错误:
"操作失败.表'tblUsers上有太多索引.' 删除表上的一些索引并再次尝试操作."
我运行了我在这里找到的代码,它返回我在tblUsers上有6个索引.我知道每个表有32个索引的限制.
我使用关系GUI错了吗?在我创建关系时,访问是否为执行引用完整性创建索引(特别是在运行脚本时不会出现的索引)?我有点困惑,任何帮助都会受到赞赏.
avi*_*ada 10
好的,经过一些研究,我想我得到了这个问题的答案.显然,这是一个非常普通的天花板,可以访问.我将总结下面发现的这篇文章:
每个表只能有32个"约束".参考完整性(RI)的每个索引和强制执行都计入此32.当您选择强制执行RI时,MS Access会自动创建约束.你无法禁用此选项.
所有代码snipets和我通过谷歌找到的东西,返回我在桌子上有六个索引(因此我感到困惑).我没有发现/不知道的是我的25个关系被计算在我的32岁之间,因为我执行了RI.
我对此的解决方案是将RI放在"较低优先级"字段上(这让我很难说),并通过数据输入表单"强制执行"它.
基本上,这是我即将迁移访问并进入PostgreSQL的另一个原因.
如果有人有更好的工作,我很乐意在这里.谢谢.