c# – 我为什么要创建外键约束?
发布时间:2020-12-15 20:47:26 所属栏目:百科 来源:网络整理
导读:我正在为Timesheet应用程序设计一个oracle数据库.我想知道是否真的有必要对表(Master和Child)进行外键约束. 我们知道理论上在表格上有一个适当的参照完整性是好的,但我们真的需要它们吗? 我听说外键使得数据库在每个DML操作上都是额外的工作,因为它必须检查
我正在为Timesheet应用程序设计一个oracle数据库.我想知道是否真的有必要对表(Master和Child)进行外键约束.
我们知道理论上在表格上有一个适当的参照完整性是好的,但我们真的需要它们吗? 我听说外键使得数据库在每个DML操作上都是额外的工作,因为它必须检查FK的一致性.这会降低性能.但另一方面,在子表中插入新行之前删除主键的情况可能会有所帮助. 性能是时间表应用程序中的主要问题,并且将有大约250人在月末(可能在同一时间)填写他们的时间表. 如果我没有表上的外键约束,那么在每次在子表中插入新记录之前,主表中是否存在主键时,是否必须首先检查它(在存储过程中)? 补充:在过去,我曾与许多经验丰富的oracle数据库开发人员合作过,我们从未在表上使用过外键约束. 解决方法
我会说开发具有外键约束的应用程序,然后测量性能,如果性能是一个问题,测量数据库与FK约束之间的差异,如果它们被证明是性能问题,请考虑消除他们.
您不太可能发现它们是任何性能问题的根源,我不建议从一开始就完全忽略它们,因为它会导致更好的性能. 您不需要它们,就像您不需要验证输入,佩戴安全带等一样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |