MySQL建表一對(duì)多,通常是指一張表中的某個(gè)字段可以有多個(gè)值,也就是一個(gè)主表和一個(gè)從表。主表中記錄一般為唯一的方式表示從表中的相關(guān)數(shù)據(jù),這種情況下就需要使用外鍵關(guān)聯(lián)兩張表,從而實(shí)現(xiàn)一對(duì)多的表關(guān)系。
CREATE TABLE `主表` ( `id` int(11) NOT NULL AUTO_INCREMENT, `字段1` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `從表` ( `id` int(11) NOT NULL AUTO_INCREMENT, `主表id` int(11) NOT NULL, `字段2` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `外鍵索引` (`主表id`), CONSTRAINT `外鍵名稱` FOREIGN KEY (`主表id`) REFERENCES `主表` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上為建立一對(duì)多關(guān)系的兩張表,在從表中通過(guò)主表id字段與主表相關(guān)聯(lián),并在該字段上建立外鍵關(guān)系。通過(guò)這種方式,一條主表數(shù)據(jù)可以對(duì)應(yīng)多條從表數(shù)據(jù),而從表數(shù)據(jù)則必然存在對(duì)應(yīng)的唯一主表數(shù)據(jù)。
總結(jié):建表一對(duì)多關(guān)系,需要在從表中添加一個(gè)外鍵字段,并在該字段上建立外鍵關(guān)系。外鍵字段保存主表的唯一標(biāo)識(shí),并在查詢時(shí)通過(guò)外鍵關(guān)系將主表與從表數(shù)據(jù)關(guān)聯(lián)起來(lái),從而實(shí)現(xiàn)一對(duì)多關(guān)系的查詢。