2011-02-22 78 views
1

我有一个使用INT字段作为外部ID(INT CommentID,INT TopicID等)的习惯外键领域重要吗?

但我从来没有使用外键字段,这是更好吗?

是否有可能将我当前在某些表中的数据库设计更改为外键字段?我已经有超过数千个表格中的数据。

+2

你的意思是** primary **,还是你的意思是一个约束? – SLaks 2011-02-22 23:58:24

+0

约束..引用ID与其他表的链接。我使用INT而不是外键字段。当然,我使用Primary Key字段作为主ID – user622378 2011-02-23 00:03:57

回答

2

外键约束非常重要。他们强制实体之间的域名关系。 (使用包含孤立或不完整数据的数据库是没有意义的)。

即使在高写入读取比率数据库的可能性较小的情况下,仍然最好包含所有FK,并且只有在它们可能被证明会损害INSERT性能时才将它们逐个删除。

此外,它们可能允许查询优化器进行额外的性能优化。

+0

谢谢。我已阅读MyISAM不支持外键约束? – user622378 2011-02-23 00:11:54

+0

您可以更改为InnoDb存储引擎吗? http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-foreign-keys.html – 2011-02-23 00:13:34