在使用MySQL時(shí),有時(shí)候我們不想使用外鍵來(lái)處理數(shù)據(jù)關(guān)系。但是,如果不使用外鍵,我們?cè)撊绾稳ヌ幚頂?shù)據(jù)呢?下面我們來(lái)探討一下。
# 創(chuàng)建一個(gè)users表,包含id和username兩列 CREATE TABLE users ( id INT PRIMARY KEY, username VARCHAR(255) ); # 創(chuàng)建一個(gè)orders表,包含id和user_id兩列 CREATE TABLE orders ( id INT PRIMARY KEY, user_id INT, order_name VARCHAR(255) ); # 查詢用戶的訂單列表 SELECT id, username, order_name FROM users, orders WHERE users.id = orders.user_id;
通過(guò)以上代碼,我們可以發(fā)現(xiàn)我們可以通過(guò)給訂單表添加一個(gè)user_id列來(lái)關(guān)聯(lián)用戶表的id列,這樣就可以查詢到用戶的訂單列表了。
不過(guò)需要注意的是,這種做法雖然可以處理數(shù)據(jù)關(guān)系,但是并沒(méi)有使用外鍵來(lái)維護(hù)數(shù)據(jù)的完整性。如果不小心刪除了用戶表中的某一行,對(duì)應(yīng)的訂單數(shù)據(jù)也將被刪除。因此,在實(shí)際開發(fā)過(guò)程中,我們還是建議使用外鍵來(lái)建立關(guān)系。