2011-04-13 40 views
0

我想了解這個表結構。我從來沒有見過這種說法,是 這種某種外鍵在CREATE TABLE語句中,爲什麼以這種方式使用「KEY」? KEY`IDX_ATTRIBUTE_LABEL_ATTRIBUTE`(`attribute_id`)

沒有表所示* IDX_ATTRIBUTE_LABEL_ATTRIBUTE *

CREATE TABLE IF NOT EXISTS `eav_attribute_label (
    `attribute_label_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `attribute_id` smallint(5) unsigned NOT NULL DEFAULT '0', 
    `store_id` smallint(5) unsigned NOT NULL DEFAULT '0', 
    `value` varchar(255) NOT NULL DEFAULT '', 
    PRIMARY KEY (`attribute_label_id`), 
    KEY `IDX_ATTRIBUTE_LABEL_ATTRIBUTE` (`attribute_id`), 
    KEY `IDX_ATTRIBUTE_LABEL_STORE` (`store_id`), 
    KEY `IDX_ATTRIBUTE_LABEL_ATTRIBUTE_STORE` (`attribute_id`,`store_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; 

感謝

回答

1

在這種情況下KEY是INDEX的同義詞,它不是一個外鍵。

注 - attribute_id上的索引是多餘的,因爲有複合索引(attribute_id,store_id)。

+0

由於'store_id'上還有一個關鍵字,所以您的註釋是唯一的。換句話說,如果沒有關鍵字'store_id',那麼可能有一個合法的原因是有'attribute_id' *和*('attribute_id','store_id')關鍵字。 – onedaywhen 2011-04-13 10:30:38

相關問題