参照完整性访问

时间:2013-09-10 15:59:52

标签: database ms-access-2010 referential-integrity

我在access数据库中有两个表。第一个表名为Program,其字段是Program ID和Program Name,Program ID是该表的主键。第二个表名为Partner,其字段为Partner ID和Partner Name,Partner ID是Partner表的主键。我有另一个表,它是一个交集表,显示程序和伙伴表之间的所有连接。交叉表包含程序ID,程序名称,合作伙伴ID和合作伙伴名称字段。我在程序表和交集表之间有一对多的关系,并且伙伴表和交集表之间有一对多的关系。我还在这两种关系上选择了引用完整性(选择了更新和删除)。我的问题是:如果我对程序表中的程序名称进行了任何更改,那么我希望将更改更新到交集表程序名称字段中。同样,对于合作伙伴名称字段。我无法做到这一点。我尝试将程序名称字段添加到程序和交集表之间的程序ID上的现有关系中,但是访问不允许我强制引用完整性,它给出错误:“主程序中引用字段没有唯一索引表”。我还尝试在Program Name字段(而不是主键)上创建Unique索引。任何人都可以请一些选择。 谢谢。

1 个答案:

答案 0 :(得分:0)

您的交叉表应该包含计划/合作伙伴名称,它应该只包含计划/合作伙伴 ID 值。< / p>

通过在交集表中保留名称的副本,您可以非规范化您的数据。这通常被认为是“坏事”。