0

我对 Access 还很陌生。

我有一个需要标准化的数据库表。我有一些关于一个人的信息。这些人被授权访问我们工作场所的区域。每个人可能被授权多次管理不同的区域,当然也可以授权不同的人管理不同的区域。我的第一次尝试是将授权和区域包括在一起,但我意识到我确实是在以这种方式重复数据。在做了一些研究之后,我决定最好的方法是创建 4 个表

tblPerson, tblPermission, tblArea, tblArea_Permission

tblArea_Permission 是一个连接表,用于 tblPermission 和 tblArea 之间的多对多关系(这是我刚刚了解到的)。我似乎在关系选项卡上设置了表关系。我还使用查询将记录添加到连接表。当我尝试执行此操作时,使用从表中获取记录的查询,我得到“您无法添加或更改记录,因为表 XXX 中需要相关记录。” 这似乎是不可能的。

我决定我可能可以忍受不强制执行引用完整性的数据库并将其拿走并为两条记录使用组合主键,因为每个有权限的人都将控制一个区域仅在一个组合中。这似乎有效,但后来我注意到记录会随机更改。我决定数据库一定是损坏的。部分数据库似乎工作正常,所以我从一个新数据库开始并导入表和一个表单,然后开始如上所述重建新表。我得到了同样的错误。

任何帮助将不胜感激。我已经阅读了一些不同的书籍,并使用了谷歌,但没有解决这个问题。

4

1 回答 1

1

如果一个人被授权管理一个区域,你需要一个persons_area表:

PersonID ) Primary key
AreaID   )

这显示了这个人可以管理哪些领域。我不确定权限表的来源。

然后,您将无法向 person_areas 表添加记录,除非您在 area 表中有一个 ID,并且在 people 表中有一个 ID。如果缺少这些 ID 中的任何一个,您将收到上述错误。

如果您想对您的数据库设计进行更多相关评论,您将需要发布模式。

于 2012-06-01T20:09:16.900 回答