VFP数据库参照完整性方面的一个实例,需要解答一下更新、删除、插入规则中的级联、限制、忽略

 我来答
king7788520
推荐于2020-12-07 · TA获得超过262个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:152万
展开全部
当更新、删除、插入一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。参照的完整性要求关系中不允许引用不存在的实体。参照完整性与实体完整性是关系模型必须满足的完整性约束条件。参照完整性的目的是保证数据的一致性。除了实体完整性、参照完整性,还有用户自定义完整性。

以上是参照完整性的定义,简单的说就是表间主键外键的关系。

结合你上面的两张表举个例子。
比如说,“车票销售表”的“车次”字段参照“列车信息”表的“车次”字段。
插入,如果你选择了限制,那么当“列车信息”表的“车次”字段中不存在A001这个车次的时候,是不允许往插入“车票销售表”插入“车次”为A001的记录的,因为你售票的话,不可能卖一趟不存在的车次的票。而且“车票销售表”的“车次”字段应设置为非空(NOT NULL),因为你不可能买一张没有对应车次的票给旅客。综上所述,插入的限制必选。
更新,其实就是先删除在插入,与插入类似,我的假设中(“车票销售表”的“车次”字段参照“列车信息”表的“车次”字段),应该选择“限制”,理由如下:车票销售表里存的是历史记录,历史一旦发生了是不可逆的,所以不应级联更新“车票销售表”的“车次”字段。如果有就车次变更,应作为新纪录插入,而原来的数据你可以做逻辑删除,或者不管。
删除,删除的图没贴,但是一定要选“忽略”,理由同更新,也是购买记录是历史,不可逆,可做逻辑删除。当表数据量过大时剪裁表,或者对历史数据进行归档然后删除。
追问

也就是说,我应该选择,更新规则---限制、插入规则--限制。

可以这么理解吧!

更新规则的--限制,后面的注释是说,子表中有相关记录则禁止更新。禁止更新的应该是主索引所在的主表。那这里的相关记录是指?(是字表中和主表中对应的车次信息以及车票销售的历史记录,还是对应的车次信息)

另外忽略中,注释说,允许删除,不管子表中 的相关记录。这里的相关记录是指?

呵呵。。谢谢你耐心的解答。。。

追答
1.那这里的相关记录是指?
子表中有相关记录则禁止更新。 当然是子表中参照了主表字段的字段。还是上面的例子,“车票销售表”的“车次”字段参照“列车信息”表的“车次”字段。如果“车票销售表”的“车次”字段里面有记录包含“列车信息”表的“车次”字段里面的值,比如“车票销售表”的“车次”字段有A0002,他参照的是“列车信息”表的“车次”字段的A0002,这时“列车信息”表的“车次”字段的A0002不能被更新。

2.另外忽略中,注释说,允许删除,不管子表中 的相关记录。这里的相关记录是指?
指的是子表中参照了主表的记录。即在上例中“车票销售表”的“车次”字段中与“列车信息”表的“车次”字段中有相同数据的记录。

不知这样讲你明白了么。
要是对数据库感兴趣的话可以看一下机械工程出版社的《数据库系统基础教程》。即使是考试看一下也是很有收益的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式