2010-05-15 2 views
1
CREATE TABLE `ost_staff` (
    `staff_id` int(11) unsigned NOT NULL auto_increment, 
    `group_id` int(10) unsigned NOT NULL default '0', 
    `dept_id` int(10) unsigned NOT NULL default '0', 
    `username` varchar(32) collate latin1_german2_ci NOT NULL default '', 
    `firstname` varchar(32) collate latin1_german2_ci default NULL, 
    `lastname` varchar(32) collate latin1_german2_ci default NULL, 
    `passwd` varchar(128) collate latin1_german2_ci default NULL, 
    `email` varchar(128) collate latin1_german2_ci default NULL, 
    `phone` varchar(24) collate latin1_german2_ci NOT NULL default '', 
    `phone_ext` varchar(6) collate latin1_german2_ci default NULL, 
    `mobile` varchar(24) collate latin1_german2_ci NOT NULL default '', 
    `signature` varchar(255) collate latin1_german2_ci NOT NULL default '', 
    `isactive` tinyint(1) NOT NULL default '1', 
    `isadmin` tinyint(1) NOT NULL default '0', 
    `isvisible` tinyint(1) unsigned NOT NULL default '1', 
    `onvacation` tinyint(1) unsigned NOT NULL default '0', 
    `daylight_saving` tinyint(1) unsigned NOT NULL default '0', 
    `append_signature` tinyint(1) unsigned NOT NULL default '0', 
    `change_passwd` tinyint(1) unsigned NOT NULL default '0', 
    `timezone_offset` float(3,1) NOT NULL default '0.0', 
    `max_page_size` int(11) NOT NULL default '0', 
    `created` datetime NOT NULL default '0000-00-00 00:00:00', 
    `lastlogin` datetime default NULL, 
    `updated` datetime NOT NULL default '0000-00-00 00:00:00', 
    PRIMARY KEY (`staff_id`), 
    UNIQUE KEY `username` (`username`), 
    KEY `dept_id` (`dept_id`), 
    KEY `issuperuser` (`isadmin`), 
    KEY `group_id` (`group_id`,`staff_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci; 

Salut la requête ci-dessus est la osTicket open source un, je sais que la clé primaire, clé étrangère, unique, mais ne sais pas QU'EST-CE QUE CEce qu'on appelle KEY

KEY group_id (group_id, staff_id)

S'il vous plaît dites-moi, ce nom de contraintes ....

Répondre

3

Il est synonyme de INDEX

+0

Je peux voir une question de suivi évidente sur cette réponse :-) – aioobe

+0

J'ai lié les docs d'ailleurs :) – Bozho

+0

oh, non! manqué ça, désolé! – aioobe

1

Il s'agit d'un index combinant les deux colonnes group_id et staff_id, mais appelé group_id. Pensez-y comme un identifiant unique, mais MySQL n'applique pas cette colonne pour qu'elle soit unique. De plus, la façon dont le db va vérifier cette clé sera dans l'ordre de group_id et ensuite de staff_id, et non l'inverse, alors assurez-vous que vos requêtes reflètent cela (c'est-à-dire que la commande de staff_id ne sera pas plus rapide par group_id et ensuite par staff_id).

Si vous posez des questions sur le **, cela ne veut rien dire dans MySQL. Je viens de voir le commentaire de Bozho, ce lien devrait suffire.

Questions connexes