我正在开发一个PHP应用程序,其中Db设计是由另一个在表之间添加FK约束( On Cascade delete etc )的人创建的。到目前为止,我以前做的是将FK放在另一个表中。例如,我们有两个表:
用户
国家
在应用程序级别,我将创建两个单独的INSERT调用。如果存在FK,那么我需要在我的应用程序级别进行哪些更改?
答案 0 :(得分:1)
在另一个表中创建行之前,您需要确保使用FK引用的行存在。
...但您可能已经这样做,因为这是创建行的逻辑顺序。
答案 1 :(得分:1)
外键强制执行参照完整性 这些约束保证表order_details中的一行与引用orders表的字段 order_id 将永远不会具有在订单表中不存在的 order_id 值。
外键并不需要有一个工作的关系数据库(实际上MySQL的默认存储引擎不支持FK),但它们对于避免破坏关系和孤立行是绝对必要的(即。参照完整性)。在 ACID 中,C需要能够在数据库级别强制实施参照完整性。