over 2 years ago

肥宅最近工作繁忙,也已經很久沒有寫部落格了,應該會開始慢慢回復以前的情形,也許1~2禮拜一篇文章之類的。
工作上的需求常常會使用到MySQL,然而在SQL上,想要正規化資料庫,那關聯肯定是其中最不可或缺的因素之一。
這邊分享一下關聯的簡單用法,主要是使用InnerJoin其他種Join目前還沒有榮幸去研究。

假設我們這邊有三個表格依序為table1, table2, table3;

id country
1 台灣
2 美國
3 日本
id c_id city
1 1 高雄
2 1 台中
3 3 東京
id c_id food
1 1 豬血糕
2 2 麵線
3 3 黑輪

我通常都會創建一個檢視表,放便以後讀取,不需要每次都寫SELECT。

CREATE VIEW food_posts AS SELECT table3.id, table3.food, table2.city, table1.country
FROM table3
INNER JOIN table2 ON table3.c_id = table2.id
INNER JOIN table3 ON table2.c_id = table1.id
WHERE table1.city = '台灣';

這樣就可以創見一個所有台灣美食的檢視表,但是要稍微注意一下Join的順序,使用正規化方式所開發的資料庫會較於維護,但要注意一點,若要將上層刪除掉,下層相關的也要一併刪除,否則怕以後擷取資料會有錯誤。

← [PHP] CodeIgniter with MySQL (ActiveRecord) [LeetCode] Sum of Two Integers →
 
comments powered by Disqus