access 中实施参照完整性 求解决!!
2个回答
展开全部
当我们把2张表建立联系的时候,这2个表肯定是有关系的。它可以是一对一的关系;如果是多对多的关系,这是不允许出现的(说明表及其关系设置有问题);大多数都是一对多的关系,当建立了一对多关系时数据库引擎就自然建立完整性原则,它能保证2个表之间的关系及数据得到正确的维护,从最基本的意义上说,防止“多端”出现不完整的记录。
参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现第一种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现第一种情况。
现在,回到你的问题。
1、如果你的2个表在没有数据时,建立上面的关系,肯定可以,并且可以“实施参照完整性”,以后你在“借书证”表中输入“书号”时,数据库会限定这个“书号”只能是“书”表中存在的书号,这是为了保证数据的完整性。
2、我可以肯定你的2个表是先有数据,后再想建立关系并想实施参照完整性的,而且“借书证”表中至少有1个以上的“书号”在“书”表中没有相应的记录,此时如果你强行建立参照完整性,这就违反了参照完整性的要求(不允许在“多端”的字段中输入1个“一端”主键不存在的值),换句话说,你的多端(既借书证表)存在了一端(既书表)中没有的记录,数据库不允许出现这种情况,所以出现提示框的内容。
3、改进方法有3种,建议前2种。①、删除“借书证”表中在“书”表中没有相关“书号”的记录,后再建立关系及参照完整性;②、在“书”表中添加相关的书号,以保证“借书证”表中所有书号在“书”中都存在,然后再建立关系及参照完整性;③、像提示框所说的“清除参照完整性复选框”,这可以建立关系,但不能实施参照完整性,不建议这样做,因为不实施参照完整性会导致数据不完整,以后会有大麻烦的。
4、“借书证”表和“读者”表 的关系也应该如上处理。
参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现第一种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现第一种情况。
现在,回到你的问题。
1、如果你的2个表在没有数据时,建立上面的关系,肯定可以,并且可以“实施参照完整性”,以后你在“借书证”表中输入“书号”时,数据库会限定这个“书号”只能是“书”表中存在的书号,这是为了保证数据的完整性。
2、我可以肯定你的2个表是先有数据,后再想建立关系并想实施参照完整性的,而且“借书证”表中至少有1个以上的“书号”在“书”表中没有相应的记录,此时如果你强行建立参照完整性,这就违反了参照完整性的要求(不允许在“多端”的字段中输入1个“一端”主键不存在的值),换句话说,你的多端(既借书证表)存在了一端(既书表)中没有的记录,数据库不允许出现这种情况,所以出现提示框的内容。
3、改进方法有3种,建议前2种。①、删除“借书证”表中在“书”表中没有相关“书号”的记录,后再建立关系及参照完整性;②、在“书”表中添加相关的书号,以保证“借书证”表中所有书号在“书”中都存在,然后再建立关系及参照完整性;③、像提示框所说的“清除参照完整性复选框”,这可以建立关系,但不能实施参照完整性,不建议这样做,因为不实施参照完整性会导致数据不完整,以后会有大麻烦的。
4、“借书证”表和“读者”表 的关系也应该如上处理。
亚远景信息科技
2024-12-11 广告
2024-12-11 广告
上海亚远景信息科技有限公司是国内汽车行业咨询及评估领军机构之一,深耕于ASPICE、敏捷SPICE、ISO26262功能安全、ISO21434车辆网络安全领域,拥有20年以上的行业经验,专精于培训、咨询及评估服务,广受全球车厂及供应商赞誉,...
点击进入详情页
本回答由亚远景信息科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询