English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL連合インデックスの使用例

この記事ではMySQLの結合インデックスについて説明します。皆様に参考にしていただくために、以下の通りです:

従業員テーブル userid
部署テーブル deptid
従業員部署テーブル

条件:1人の従業員は複数の部署に対応できます

質問:どうやってデータベースを設定して、useridとdeptidが重複しないようにするか?

uuid userid deptid
111
212
311(こののは追加させない)

DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `deptname` char(32) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf88;
-- ----------------------------
-- 部门记录
-- ----------------------------
INSERT INTO `dept` VALUES ('1', '1);
INSERT INTO `dept` VALUES ('2', '2);
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(32) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf88;
-- ----------------------------
-- 员工记录
-- ----------------------------
INSERT INTO `employee` VALUES ('1', '11);
DROP TABLE IF EXISTS `employee_dept`;
CREATE TABLE `employee_dept` (
 `id` int(11) NOT NULL,
 `employeeid` int(11) NOT NULL,
 `deptid` int(11) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `bb` (`deptid`),
 KEY `myindex` (`employeeid`,`deptid`),
 CONSTRAINT `aa` FOREIGN KEY (`employeeid`) REFERENCES `employee` (`id`),
 CONSTRAINT `bb` FOREIGN KEY (`deptid`) REFERENCES `dept` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- employee_deptのレコード
-- ----------------------------
INSERT INTO `employee_dept` VALUES ('1', '1', '1);
INSERT INTO `employee_dept` VALUES ('2', '1', '2);

注記:結合インデックスを作成する例です。create index myindex on employee_dept (employeeid,deptid);

MySQLに関する詳細な内容に興味がある場合は、本サイトの特集をチェックしてください:《MySQLインデックス操作の技術集》、《MySQLログ操作の技術大全》、《MySQLトランザクション操作の技術集》、《MySQLストレージプロシージャの技術大全》、《MySQLデータベースロックの技術集》および《MySQL常用関数の集約》

本記事の内容が皆様のMySQLデータベースの計画に役立つことを願っています。

声明:本記事の内容はインターネットから提供され、著作権者に帰属します。インターネットユーザーにより自発的に提供されたコンテンツであり、本サイトは権利を所有しておらず、編集も行っていません。著作権に関する問題がある場合は、notice#wまでメールをお送りください。3codebox.com(メールを送信する際、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとれましたら、本サイトは即座に侵害が疑われるコンテンツを削除します。)

おすすめ