在为潜在的PHP/Mysql应用程序创建数据库之前,我在MySql工作台中查看了我的表,并注意到在构建每个表时可以选择包含一个外键。
在创建数据库时,是否应该在构建表的SQL语句中声明外键?或者..。我应该只在PHP页面的SQL select和insert语句中链接表吗?为什么或者为什么不?
发布于 2013-07-04 07:31:53
发布于 2013-07-04 08:05:52
在我分析过的每个缺少外键约束的数据库中,数据都是混乱的。子表中存在引用父表中已删除行的行。
如果没有外键约束,这些“孤立”行很难防止,甚至很难检测到。基本上,您必须依赖于在应用程序中编写完美的代码--这是一件有风险的事情!;-)
我在这里写了关于如何自动检测孤立行的文章:http://www.mysqlperformanceblog.com/2011/11/18/eventual-consistency-in-mysql/
https://stackoverflow.com/questions/17459712
复制相似问题