gpt4 book ai didi

mysql - 在 MySQL 中使用 InnoDB 时,显式定义*每个*外键是否很常见?

转载 作者:行者123 更新时间:2023-11-29 01:24:34 25 4
gpt4 key购买 nike

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

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

我有一个战士表,其中有多列是外键。我想知道是否建议始终显式定义外键关系,无论表中引用了多少个外键?

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

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 列的外键。这是要走的路吗?或者,出于性能原因,我应该以关系完整性为代价限制显式定义的外键数量?

最佳答案

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

关于mysql - 在 MySQL 中使用 InnoDB 时,显式定义*每个*外键是否很常见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5468308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com