MySQL命名约定

MySQL命名约定,mysql,sql,django,Mysql,Sql,Django,我正在AmazonEC2实例上重新创建这个数据库(最初由django modelw创建)。我使用MySQL workbench将数据库转换为模型,然后让它将其转发到.sql文件中的所有CREATE语句中。然而,一些外键的命名非常奇怪,我不确定哪些部分可以去掉或重命名,哪些部分是必需的。下面是我正在谈论的代码示例 CREATE TABLE IF NOT EXISTS `gamelydb`.`quotes` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `

我正在AmazonEC2实例上重新创建这个数据库(最初由django modelw创建)。我使用MySQL workbench将数据库转换为模型,然后让它将其转发到.sql文件中的所有CREATE语句中。然而,一些外键的命名非常奇怪,我不确定哪些部分可以去掉或重命名,哪些部分是必需的。下面是我正在谈论的代码示例

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;

所以,就像它有“索引‘引号’\u randomstup’”或‘演讲者’\u id\u refs\u id’一样,我是否需要所有的随机内容,或者为了清晰/实用起见,我应该将其重命名为什么?

根据您可能需要它。这是一个ID。

根据您可能需要它。这是一个ID。

拥有所有索引(整个文件中有很多索引)会有不同吗/它们是必要的吗?只有在计划对表的非关键字段进行复杂选择,并且需要快速访问某些字段组合时,索引才是必要的。我不知道计划的用途是什么,我假设你知道你需要索引做什么。我的意思是我已经掌握了它们的用途,但是它们是通过mysql工作台转换而来的。我可能会把它们拿出来,因为选择不会太复杂,速度也不会太重要。谢谢。拥有所有索引(整个文件中有很多索引)会有不同吗/它们是必要的吗?只有在计划对表的非关键字段进行复杂选择,并且需要快速访问某些字段组合时,索引才是必要的。我不知道计划的用途是什么,我假设你知道你需要索引做什么。我的意思是我已经掌握了它们的用途,但是它们是通过mysql工作台转换而来的。我可能会把它们拿出来,因为选择不会太复杂,速度也不会太重要。谢谢。MySQL要求每个密钥都有一个唯一的名称。如果您不提供一个,它将为您生成一个,因此密钥名中会出现“垃圾”。如果愿意,您可以更改这些设置,但除非您经常操作关键点,否则是否值得花费时间/精力?Ok听起来不错。我认为内部游戏id永远不会改变,所以在这种情况下可能不值得。Thanks@MarcB-你应该把它作为一个答案!MySQL要求每个密钥具有唯一的名称。如果您不提供一个,它将为您生成一个,因此密钥名中会出现“垃圾”。如果愿意,您可以更改这些设置,但除非您经常操作关键点,否则是否值得花费时间/精力?Ok听起来不错。我认为内部游戏id永远不会改变,所以在这种情况下可能不值得。Thanks@MarcB-你应该把它作为一个答案!