2012-04-03 5 views
0

während Arbeits osCommerce-3 erhielt ich die Tabellenstruktur für die Kategorie & categories_description alsWas die Bedeutung des Begriffs ‚idx_categories_desc_categories_name‘ ist in osCommerce

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; 

hier bin ich nicht die meanning der Indizierung bekommen

"idx_categories_desc_categories_id",

"idx_categories_desc_language_id",

"idx_categories_desc_categories_name"

Was die Verwendung dieses indexing.What ist bedeutet es?

+0

mögliches Duplikat von [MySQL KEY/UNIQUE KEY] (http://stackoverflow.com/questions/8742575/mysql-key-unique-key) – random

+1

Nein; Es ist kein Duplikat dieser Frage. Das OP wollte die Namenskonvention des osCommerce-Index verstehen; das ist alles. –

+0

Wenn es sich darum handelt, warum osCommerce bestimmte Namen gewählt hat, wäre dies nicht von Interesse. Wenn es fragen würde, warum sie so eingerichtet sind, wäre es ein Duplikat. In jedem Fall, da es all dieses Raten ohne Klärung gibt, ist es keine echte Frage @sco – random

Antwort

1

Die drei Token genannt Sie

"idx_categories_desc_categories_id", 

"idx_categories_desc_language_id", 

"idx_categories_desc_categories_name" 

nur Namen sind - es gibt nichts über sie etwas Besonderes. Sie hätten "foo", "bar" und "baz" heißen können und das wäre gut gewesen.

Sie bleiben bei der osCommerce-Namenskonvention der Verwendung von idx_ für Indizes, dann der Name der Tabelle und dann das Schlüsselfeld. Aber das ist nur eine Entwicklerkonvention; Es wird von der Datenbank nicht benötigt.

1

Diese drei Indizes werden für die in den Klammern angegebenen Tabellen erstellt (categories_id, language_id, categories_name). Das Schlüsselwort KEY ist ein Synonym für das Schlüsselwort INDEX. Es ist keine besondere Magie dahinter.

Ich denke, diese drei Indizes werden verwendet, um Daten Retrival/Sortierung Operationen auf diesen Tabellen zu beschleunigen.

Der Index "idx_categories_desc_categories_id" ist übrigens redundant, "categories_id" wird bereits vom linken Teil des zusammengesetzten Index auf dem Primärschlüssel abgedeckt.

Verwandte Themen