2011-06-14 10 views
1

아마존 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'를이 곳처럼, 나는 모든 임의의 물건이 필요하거나 무엇을 내가 선명도의/실용성을 위하여로 이름을 변경해야합니까?

+0

MySQL에는 각 키마다 고유 한 이름이 필요합니다. 만약 당신이 하나를 제공하지 않으면, 그것은 당신을 위해, 따라서 열쇠 이름에 '쓰레기'를 생성합니다. 원할 경우 변경할 수 있지만 키를 자주 조작하지 않는 한 시간/노력의 가치가 있습니까? –

+0

좋은 소리가납니다. 내부 game_id가 변경 될 것으로 생각하지 않습니다. 따라서이 경우에는 가치가 없을 것입니다. 감사합니다 – cfrederich

+0

@ 마르크 B - 당신은 대답으로 넣어 줘야 겠어! – T9b

답변

1

this에 따르면 아마도 필요합니다. 신분증이야.

+0

에는 모든 INDEX가 있습니다 (전체 파일에 많은 부분이 있음). 차이가 있습니까?/필요합니까? – cfrederich

+0

색인은 표의 키가 아닌 필드에서 복잡한 선택을 계획 ​​할 때만 필요하며 특정 필드 조합에 빠르게 액세스해야합니다. 나는 계획된 용도가 무엇인지 알지 못했고, 나는 당신이 당신이 그 지표를 필요로하는 것이 무엇인지 알았다고 생각했습니다. – T9b

+0

나는 그것이 무엇인지에 대한 이해를 가지고 있음을 의미하지만 mysql 워크 벤치 변환에 의해 영향을 받았다. 아마 그걸 꺼내 버릴 테니, 선택이 복잡해지지 않을 것이고, 속도가 너무 중요하지 않을 수도 있습니다. 감사. – cfrederich