2012-04-03 112 views
0

上工作,而自從-3我得到了類& categories_description表結構什麼是「idx_categories_desc_categories_name」的含義,自從

CREATE TABLE IF NOT EXISTS `osc_categories` (
    `categories_id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `categories_image` varchar(255) DEFAULT NULL, 
    `parent_id` int(10) unsigned DEFAULT NULL, 
    `sort_order` int(11) DEFAULT NULL, 
    `date_added` datetime DEFAULT NULL, 
    `last_modified` datetime DEFAULT NULL, 
    PRIMARY KEY (`categories_id`), 
    KEY `idx_categories_parent_id` (`parent_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; 

CREATE TABLE IF NOT EXISTS `osc_categories_description` (
    `categories_id` int(10) unsigned NOT NULL, 
    `language_id` int(10) unsigned NOT NULL, 
    `categories_name` varchar(255) NOT NULL, 
    PRIMARY KEY (`categories_id`,`language_id`), 
    KEY `idx_categories_desc_categories_id` (`categories_id`), 
    KEY `idx_categories_desc_language_id` (`language_id`), 
    KEY `idx_categories_desc_categories_name` (`categories_name`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

這裏我沒有得到索引的meanning

「idx_categories_desc_categories_id」,

「idx_categories_desc_language_id」,

「idx_categories_desc_categories_name」

這個索引有什麼用,這是什麼意思?

+0

[MySQL KEY/UNIQUE KEY]的可能重複(http://stackoverflow.com/questions/8742575/mysql-key-unique-key) – random 2012-04-03 22:24:12

+1

否;這不是該問題的重複。 OP想要了解osCommerce索引命名約定;就這樣。 – 2012-04-04 19:16:58

+0

如果這是osCommerce爲什麼選擇某些名稱的情況,這將脫離主題/不具建設性。如果問他們爲什麼要這樣設置,那將是重複的。在任何一種情況下,由於所有這些猜測都沒有澄清,所以這不是真正的問題@sco – random 2012-04-05 22:09:16

回答

1

的三個令牌

"idx_categories_desc_categories_id", 

"idx_categories_desc_language_id", 

"idx_categories_desc_categories_name" 

只是名字 - 沒有什麼特別之處他們。他們可能被稱爲「富」,「酒吧」和「巴茲」,這將是很好的。

它們遵循osCommerce命名約定,使用idx_作爲索引,然後是表名稱,然後是關鍵字段。但這只是開發者的慣例;它不是數據庫所要求的。

1

這三個索引是爲括號(categories_id,language_id,categories_name)中指定的表格創建的。 KEY關鍵字是INDEX關鍵字的同義詞。它背後並沒有什麼特別的魔力。

我想這三個索引是用來加快這些表上的數據檢索/排序操作。

索引「idx_categories_desc_categories_id」是冗餘的方式,主鍵上的複合索引的左側部分已經覆蓋了「categories_id」。你提到