關聯式資料庫簡介
關聯式資料庫(Relational database)是建立在關聯模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。現如今雖然對此模型有一些批評意見,但它還是資料儲存的傳統標準。
標準資料查詢語言SQL就是一種基於關聯式資料庫的語言,這種語言執行對關聯式資料庫中資料的檢索和操作。
關係鍵
其實還有其他關係鍵,但這邊暫且用不到,所以只介紹主鍵與外鍵。
主鍵(primary key)
資料庫表中對儲存資料物件予以唯一和完整標識的資料列或屬性的組合。一個資料表只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。外鍵(foreign key)
是關聯式資料庫的重要組成部分。在關聯式資料庫中,每個資料表都是由關聯來連繫彼此的關係,父資料表(Parent Entity)的主鍵(primary key)會放在另一個資料表,當做屬性以建立彼此的關聯,而這個屬性就是外來鍵。
圖解
事實上,departments還可以再增加許多內容,比如科系主任、科系教授數量…等。
students資料表的科系代碼欄位是屬於外鍵,departments資料表的科系代碼則是主鍵,students的外鍵對應到departments的主鍵,可以省略很多重複的資料。
之所以需要使用關聯資料表,是因為我們不希望在學生資料上記載關於科系的詳細資料,這兩份資料表有各自明確的功能,我們只需要創造兩張表的”關聯”,就可以在必要的時候查找資訊。
建立資料表之間的關聯
首先我們需要建立一個資料庫,並新增兩個資料表(customer、order_list),將customer資料表的id設定為主鍵,且將A_I勾選。
接著將order_list的customer_id設置為索引(index)。
切回 testing資料庫,在上方導航欄找到「更多-設計器」,在左側工具欄找到「建立關聯」,將customer的id與order_list的customer_id 欄位作關聯。
切到 order_list 資料表,新增資料的時候就能看到customer_id已經與customer資料表的id作關聯了。
外鍵約束屬性
可以下的參數有:
ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}
ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}
參數解釋:
CASCADE – 會將有所關聯的紀錄行也會進行刪除或修改。
SET NULL – 會將有所關聯的紀錄行設定成 NULL。
NO ACTION – 有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
RESTRICT – 與 NO ACTION 相同。
- 解決 preact-router 資源請求路徑錯誤的問題 - 2022 年 6 月 24 日
- [楓之谷私服] 潮流轉蛋機 NPC 腳本優化 - 2022 年 6 月 19 日
- [楓之谷私服] 簡單的飛天椅子(坐騎)改法 v120 - 2022 年 6 月 19 日