微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 我为什么要创建外键约束?

我正在为Timesheet应用程序设计一个oracle数据库.我想知道是否真的有必要对表(Master和Child)进行外键约束.

我们知道理论上在表格上有一个适当的参照完整性是好的,但我们真的需要它们吗?

我听说外键使得数据库在每个DML操作上都是额外的工作,因为它必须检查FK的一致性.这会降低性能.但另一方面,在子表中插入新行之前删除主键的情况可能会有所帮助.

性能是时间表应用程序中的主要问题,并且将有大约250人在月末(可能在同一时间)填写他们的时间表.

如果我没有表上的外键约束,那么在每次在子表中插入新记录之前,主表中是否存在主键时,是否必须首先检查它(在存储过程中)?

补充:在过去,我曾与许多经验丰富的oracle数据库开发人员合作过,我们从未在表上使用过外键约束.

解决方法

我会说开发具有外键约束的应用程序,然后测量性能,如果性能一个问题,测量数据库与FK约束之间的差异,如果它们被证明是性能问题,请考虑消除他们.

您不太可能发现它们是任何性能问题的根源,我不建议从一开始就完全忽略它们,因为它会导致更好的性能.

您不需要它们,就像您不需要验证输入,佩戴安全带等一样.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐