一种记录删除操作的验证方法、系统及设备技术方案

技术编号:2914535 阅读:202 留言:0更新日期:2012-04-11 18:40
本发明专利技术适用于计算机领域,提供了一种记录删除操作的验证方法、系统及设备,所述方法包括下述步骤:在删除待删除数据库表中的待删除记录前,遍历引用表,查找所述待删除数据库表的引用集合;根据所述待删除记录,遍历所述待删除数据库表的引用集合;根据遍历结果确定是否删除待删除数据库表中的待删除记录。本发明专利技术实施例可以给用户友好的提示,同时由于引用表是随数据库表之间的外键关系的更新而更新的,从而具有较好的扩展性,易于维护。

【技术实现步骤摘要】

本专利技术属于数据库领域,尤其涉及一种记录删除操作的验证方法、系统及设备
技术介绍
数据库是依照某种数据模型组织起来并存放在存储器中的数据集合。这种数据集合以最优方式为某个特定组织的多种应用提供服务,其数据结构独立于使用它的应用程序。为了为某个特定的应用软件提供服务,数据库中一般包括多个与应用中的实体对应的数据库表。根据应用中各实体之间的关系,设计数据库表之间的关系。在数据库设计过程中,为了保证数据库的完整性,如在删除数据库表中的记录时,如果其他数据库表引用了待删除数据库表中的待删除记录,则为了保证数据库的完整性,需要在删除待删除数据库表中的待删除记录前,对记录删除操作进行验证。现有技术提供了一种记录删除操作的验证方法,简述如下:通过在各数据库表之间建立外键约束,在删除待删除数据库表中的待删除记录时,捕获数据库的异常来确定是否可以删除。这种记录删除操作的验证方法不能给用户友好的提示,且外键约束较多时,难以维护,数据升级过程过于复杂。
技术实现思路
本专利技术的目的在于提供一种记录删除操作的验证方法,旨在解决现有的记录删除操作的验证方法难以给出友好提示的问题。本专利技术是这样实现的,一种记录删除操作的验证方法,所述方法包括下述-->步骤:在删除待删除数据库表中的待删除记录前,遍历引用表,查找所述待删除数据库表的引用集合;根据所述待删除记录,遍历所述待删除数据库表的引用集合;根据遍历结果确定是否删除待删除数据库表中的待删除记录。本专利技术的另一目的在于提供一种记录删除操作的验证系统,所述系统包括:引用表存储单元,用于存储引用表,所述引用表存储数据库表之间的引用信息;引用表遍历单元,用于在删除待删除数据库表中的待删除记录前,遍历所述引用表,查找所述待删除数据库表的引用集合;集合遍历单元,用于根据所述待删除记录,遍历所述待删除数据库表的引用集合;删除操作执行单元,用于根据所述遍历结果确定是否删除待删除数据库表中的待删除记录。本专利技术的另一目的在于提供一种包括所述记录删除操作的验证系统的记录删除操作的验证设备。在本专利技术实施例中,通过建立引用表,在删除待删除数据库表中的待删除记录前,遍历引用表,得到该待删除数据库表的引用集合,再通过遍历待删除数据库表的引用集合,判断该待删除记录是否真正被引用,根据遍历结果可以给用户友好的提示。附图说明图1是本专利技术实施例提供的记录删除操作的验证方法的实现流程图;图2是本专利技术实施例提供的记录删除操作的验证系统的结果框图。具体实施方式-->为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在本专利技术实施例中,预先建立用于存储数据库表之间的引用信息的引用表,在删除待删除数据库表中的待删除记录前,遍历存储的引用表,得到引用了待删除数据库表的数据库表和引用了待删除数据库表的字段集合,遍历得到的引用了待删除数据库表的数据库表和引用了待删除数据库表的字段集合,根据遍历结果确定是否删除待删除数据库表中的待删除记录。在本专利技术实施例中,预先建立一引用表(T_TableRef),用于存储数据库表之间的引用信息,即存储某个数据库表被哪些数据库表的哪个字段引用了。该T_TableRef中至少包括主键表(PTableName)、外键表(FTableName)、外键字段(ForeignKey)三项引用信息。该引用表还可以包括外键表描述信息、主键表描述信息等。表1.1给出了引用表的一个示例:表1.1 PTableNameFTableNameForeignKeyABFAACFA上述引用表表示,数据库表A被数据库表B的FA字段引用了,同时数据表A被数据库表C的FA字段引用了。其中引用表中存储的数据库表之间的引用信息是根据数据库中各数据库表之间的外键关系自动生成并存储至引用表中的。其具体过程如下:在创建业务系统的数据库时,一般均包括创建数据库的SQL脚本,该SQL脚本中一般包括数据库表的信息,如字段信息、外键信息等,通过读取SQL脚本,遍历该SQL脚本中创建数据库表的语句,即可得到数据库表的外键信息,当引用表中未包括该外键信息时,则在引用表中插入一条记录以描述该外键信息,当引用表中包括该外键信息时,则不插入。通过上述过程即可根据数据库-->中各数据库表之间的外键关系自动生成引用信息并存储至引用表中。以下以一个实例,对本专利技术实施例提供的根据各数据库表之间的外键关系自动生成引用表中的引用信息的过程进行详细说明。假设在数据库设计时,包括三个数据库表,分别为员工信息表(T_Person)、采购信息表(T_Stock)和部门信息表(T_Department)。其中T_Person中包括ID、Name、Phone、DepartmentID四个字段,T_Stock中包括ID、Itemname、DepartmentID三个字段,T_Department包括ID、Name两个字段。其中T_Person、T_Stock和T_Department之间的外键关系如下:T_Person通过外键DepartmentID与T_Department关联,T_Stock通过外键DepartmentID与T_Department关联。则此时,根据T_Person、T_Stock和T_Department之间的外键关系,可以得到T_Department被T_Person中的DepartmentID字段引用的引用信息,T_Department被T_Stock中的DepartmentID字段引用的引用信息,将得到的引用信息存储至T_TableRef中,即可得到表1.2所示的T_TableRef:表1.2 PTableNameFTableNameForeignKeyT_DepartmentT_PersonDepartmentIDT_DepartmentT_StockDepartmentID图1示出了本专利技术实施例提供的记录删除的校验方法的实现流程,详述如下:在步骤S101中,在删除某数据库表(称为待删除数据库表)中的某条记录(称为待删除记录)前,遍历引用表,查找引用待删除数据库表的数据库表以及引用待删除数据库表的字段的集合。在本专利技术实施例中,将引用待删除数据库表的数据库表和引用待删除数据库表的字段的集合称为待删除数据库表的引用集合。在本专利技术实施例中,由于引用表中存储了各数据库表之间的引用信息,通过遍历引用表,将待删除数据库表与引用表中的主键表进行匹配,即可查找到-->待删除数据库表的引用集合。在本专利技术实施例中,可以采用“select*from引用表where主键表=待删除数据库表”来遍历引用表,查找到引用待删除数据库表的数据库表以及引用待删除数据库表的字段的集合。如在删除T_Department中的某条记录前,可以采用“select * fromT_TableRef where FTableName=T_Department”遍历表1.2所示的引用表,查找到引用T_Department的数据库表和引用T_Department的字段的集合,即“select* from T_TableRef where FTableName=T_Department”的返本文档来自技高网...

【技术保护点】
一种记录删除操作的验证方法,其特征在于,所述方法包括下述步骤: 在删除待删除数据库表中的待删除记录前,遍历引用表,查找所述待删除数据库表的引用集合; 根据所述待删除记录,遍历所述待删除数据库表的引用集合; 根据遍历结果确定 是否删除待删除数据库表中的待删除记录。

【技术特征摘要】
1、一种记录删除操作的验证方法,其特征在于,所述方法包括下述步骤:在删除待删除数据库表中的待删除记录前,遍历引用表,查找所述待删除数据库表的引用集合;根据所述待删除记录,遍历所述待删除数据库表的引用集合;根据遍历结果确定是否删除待删除数据库表中的待删除记录。2、如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:创建用于存储数据库表之间的引用信息的引用表;根据数据库表之间的外键关系生成数据库表之间的引用信息,并将所述引用信息存储至所述引用表。3、如权利要求1所述的方法,其特征在于,当更新数据库表之间的外键关系时,所述方法还包括下述步骤:根据更新后的数据库表之间的外键关系生成数据库表之间的引用信息,并将所述引用信息更新至所述引用表中。4、如权利要求1所述的方法,其特征在于,所述根据所述待删除记录,遍历所述待删除数据库表的引用集合的步骤具体为:根据所述待删除记录,遍历所述待删除数据库表的引用集合中的数据库表,判断所述待删除记录是否被所述引用集合中的数据库表真正引用。5、如权利要求4所述的方法,其特征在于,所述根据遍历结果确定是否删除待删除数据库表中的待删除记录的步骤具体为:当所述遍历结果为所述待删除记录被所述引用集合中的数据库表真正引用时,提示用户待删除记录被引用的情况;当所述遍历结果为所...

【专利技术属性】
技术研发人员:谢丽
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1