首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MySQL中使用InnoDB时,显式定义*每个*外键是很常见的吗?

在MySQL中使用InnoDB时,显式定义*每个*外键是很常见的吗?
EN

Stack Overflow用户
提问于 2011-03-29 13:35:10
回答 1查看 210关注 0票数 2

我一直在使用MyISAM,并没有定义显式的外键关系,直到最近我决定开始担心引用完整性之类的问题。

我正在开发一个数据库,该数据库存储了战斗事件和战斗人员的统计数据,因此我认为这符合使用InnoDB和显式定义外键的标准。

我有一个fighters表,它有多个外键列。我想知道是否建议总是显式地定义外键关系,而不管表中引用了多少外键?

特别是,对于这个表,我有:

代码语言:javascript
运行
复制
CREATE TABLE `fights` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `event_id` int(10) unsigned DEFAULT NULL,
  `winner_id` int(10) unsigned DEFAULT NULL,
  `referee_id` int(10) unsigned DEFAULT NULL,
  `championship_match` enum('1','0') DEFAULT NULL,
  `weight_class` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我计划让referee_idwinner_idevent_id成为它们各自表的id列的所有外键。这是要走的路吗?或者,出于性能原因,我是否应该以关系完整性为代价限制显式定义的外键的数量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-29 13:39:59

永远不要放弃正确的数据,永远不要。请保持您的引用完整性。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5468308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档