sta*_*zel 22 php mysql constraints
我试图在一个外键的表中创建一个列,但在MySQL中,它比它应该更难.它需要我返回并对已经使用的表进行某些更改.所以我想知道,MySQL有必要确保某个值合适吗?我不能只是做与像PHP语言,其中我使用到访问该数据库呢?
与NOT NULL类似.如果我只用PHP访问这个数据库,我不能简单地让PHP确保没有输入空值吗?
当我可以使用PHP时,为什么我应该使用MySQL来强制执行这些约束?
我意识到由于上述原因,NOT NULL是一个非常愚蠢的部分.但是,如果没有严重的编程,MySQL就不会强制执行外键.
在您看来,使用"假"外键仍然是不好的,只需检查输入的值是否与其他表匹配,使用PHP?
yfe*_*lum 55
您将使用PHP犯错,100%保证.PHP是程序性的.你想要的是声明性约束.您想要告诉整个堆栈:"这些是对数据的约束,并且不能违反这些约束." 您不希望在"步骤1 ...步骤2 ...步骤3 ...步骤432 ..."中作为执行数据约束的方法,因为
问题实际上应该措辞,"当我可以使用MySQL时,为什么我应该使用PHP来强制执行这些约束?"
如果你能发誓为你的生活,没有什么会永远访问数据库,虽然任何其他手段那么你的PHP页面(当然无bug的),然后用PHP做它独自将被罚款.
由于真实场景总是包含一些不确定性,因此让DB服务器观察数据的完整性是一件好事.
对于简单的数据库,参照完整性约束可能不是绝对的要求,而是一个很好的.应用程序越复杂,您从中获得的好处就越多.尽早规划它们会让您的生活更轻松.
此外,引用完整性使它成为强迫您以更多书本方式设计数据库的一部分,因为不再可能存在每个脏黑客攻击.这也是一件好事.