我正在Amazon EC2实例上重新创建此数据库(我原本是由django modelw制作的)。我使用MySQL工作台将数据库转换为模型,然后将其转发到.sql文件中的所有CREATE语句。然而,一些外键的东西很奇怪地命名,我不确定我可以取出或重命名哪些部分以及哪些部分是必需的。以下是我正在谈论的代码示例。MySQL命名约定
CREATE TABLE IF NOT EXISTS `gamelydb`.`quotes` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`game_id` INT(11) NOT NULL ,
`quotetext` VARCHAR(400) NOT NULL ,
`speaker_id` INT(11) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `quotes_7b333d1e` (`game_id` ASC) ,
INDEX `quotes_7171bad0` (`speaker_id` ASC) ,
CONSTRAINT `game_id_refs_id_274910a8`
FOREIGN KEY (`game_id`)
REFERENCES `gamelydb`.`game` (`id`),
CONSTRAINT `speaker_id_refs_id`
FOREIGN KEY (`speaker_id`)
REFERENCES `gamelydb`.`person` (`id`))
ENGINE = InnoDB DEFAULT CHARACTER SET = latin1;
所以等,其中有“INDEX‘quotes_randomstuff’”或“speaker_id_refs_id”,我需要所有的随机的东西或者我应该将其重命名为清晰的/实用性的缘故?
MySQL对每个密钥都要求一个唯一的名称。如果你不提供一个,它会为你生成一个,因此在关键名称中是'垃圾'。如果你愿意,你可以改变这些,但除非你经常操纵按键,否则这是值得的时间/精力? – 2011-06-14 14:36:54
好听起来不错。我不认为内部的game_id会永远改变,所以这可能不值得为这种情况。谢谢 – cfrederich 2011-06-14 14:42:45
@Marc乙 - 你应该把这作为一个答案! – T9b 2011-06-14 14:47:37