33
A
回答
59
Foreign keys执行referential integrity。这些约束条件保证了表order_details
中表的字段order_id
引用orders
表中的行将永远不会有值,orders
表中不存在该值。
外键不需要有一个可用的关系数据库(事实上MySQL's default storage引擎不支持FK),但它们对于避免断开的关系和孤行(即参照完整性)绝对是必不可少的。在ACID的C需要站在数据库级执行参照完整性的能力。
至于您对性能的关注,一般来说会有性能成本,但可能可以忽略不计。我建议把所有的外键约束都放进去,只有在没有它们的情况下才会进行实验,如果你有真正的性能问题,那么你不能另外解决。
相关问题
- 1. mysql外键约束
- 2. 为什么外键约束失败?
- 3. 为什么我在外键约束上得到MySQL错误1064?
- 4. 外键存在时为什么'外键约束失败'?
- 5. mysql#1215 - 无法添加外键约束 - 但为什么?
- 6. MySql外键约束问题
- 7. MySQL - 外键约束错误
- 8. 检查外键约束MySQL
- 9. 外键约束失败(MySQL)
- 10. 为什么使用命名密钥约束(例如:外键)
- 11. 外键约束
- 12. 外键约束
- 13. 外键约束
- 14. Mysql外键约束不起作用
- 15. 为什么FK约束不MySql中
- 16. 在InnoDB/MySQL中使用外键约束和级联
- 17. 我的mysql外键约束有什么问题?
- 18. mySQL:什么阻止我的外键约束?
- 19. 为什么我可以用外键约束自由输入值
- 20. 为什么我的外键关系不适用约束规则?
- 21. 为什么'从表中删除'忽略外键约束?
- 22. 外键约束使用ebean中发挥
- 23. 在Ruby on Rails(MySQL)中为现有表添加外键约束
- 24. 在SQLite中启用外键约束
- 25. 从外键约束
- 26. 外键约束 - Pentaho
- 27. SqlAlchemy外键约束
- 28. 与外键约束
- 29. SQLite外键约束
- 30. 外键约束SQL
类似的问题已回答,请参阅 http://stackoverflow.com/questions/1876013/有很多讨论:D – 2010-08-08 10:38:32