我在想,
我确定可以控制添加的类型,因此在MySQL中使用约束作为外键的动机是什么?
它会提高性能吗?
外键强制执行参照完整性。这些约束保证了表中order_details具有order_id引用表的字段的orders行将永远不会具有表order_id中不存在的值orders。
order_details
order_id
orders
外键不需要具有有效的关系数据库(实际上MySQL的默认存储引擎不支持FK),但是对于避免断开关系和孤立行(即参照完整性),它们绝对是必不可少的。是必需的在数据库级别实施参照完整性的能力 Ç 在ACID站。
至于您对性能的关注,通常会有性能成本,但是可能会忽略不计。我建议您输入所有外键约束,如果您遇到无法解决的实际性能问题,请仅在没有它们的情况下进行试验。