MySQL中的parent指的是在一張表中,有指向該表自身的外鍵(foreign key)。這樣的關(guān)系稱為父子關(guān)系。常用的場景有組織機構(gòu)、分類、評論回復(fù)等。
CREATE TABLE category ( id INT, parent_id INT, name VARCHAR(100), PRIMARY KEY (id), FOREIGN KEY (parent_id) REFERENCES category(id) );
在這里,category表創(chuàng)建了一個自引用的外鍵關(guān)系:每個分類可能有一個父分類(parent_id),即該分類還屬于哪一個更大的分類。
在使用該表時,我們可以通過join操作查詢出某個分類的父分類和子分類。而在插入、更新、刪除時,也要注意維護好父子關(guān)系。
-- 查詢一個分類的子分類 SELECT c2.name FROM category AS c1 JOIN category AS c2 ON c1.id = c2.parent_id WHERE c1.name = 'parent category';
在這里,我們通過自連接(self-join)的方式將同一表彼此關(guān)聯(lián),從而查詢出一個分類(name = 'parent category')的所有子分類(即parent_id為該分類id的記錄)。
總之,在涉及到parent的MySQL操作中,需要注意好維護好父子關(guān)系,以及使用自連接進行查詢。