MS Access中三个表之间的关系

时间:2015-08-08 18:27:14

标签: database ms-access relational-database ms-access-2013

基本上这些是我的表格:

enter image description here

当我向表3添加记录时,我希望Access在数据库级别检查要添加的记录(D,C,A)的对(C,A)是否有效一,在表2中查找其对应的B属性,并确保得到的(B,A)对是有效的(即存在于表1中)。但是我现在一无所知,并且不知道如何在Access中建立这样的关系,而不会破坏我在数据库中的3NF。

当然这可以在前端完成,但我更喜欢数据库级别的解决方案,因为我确信我可以通过关系强制进行完整性检查。

编辑:

如果可能有帮助,我会添加一些有关功能依赖项的详细信息。如前所述,可以安全地假设这些表已经在3NF中。唯一的功能依赖性(当然除了传递性产生的依赖性)是:

D,C - >甲

C - >乙

1 个答案:

答案 0 :(得分:0)

理论上,您可以使用包含Table1和Table2的视图/查询来执行此操作。 由于此查询仅用于数据完整性(而不是用于存储数据),因此您不会销毁3NF模型。

不幸的是,Access无法在查询中创建与参照完整性的关系,而只能建立正常的关系"。有了这个,您可以在没有警告的情况下删除Table1中的记录,即使它破坏了参照完整性。