數據庫外鍵設計

數據庫外鍵設計時,一般會遇到兩個問題,無法創建外鍵,一個是聯動刪除。
拿班級表(t_class)和學生表(t_student)來說吧,t_class是父表,t_student是子表。t_student表的class_id關聯着t_class表的id。
無法創建外鍵一般來說是因爲子表中需要關聯父表的字段,即class_id字段有t_class表的id沒有的數據,或者爲空("")。注意:空和null不一樣,你填了東西再刪除時空,你沒填過東西是null。
聯動刪除的話,我用的是mysql,圖形化管理工具是navicat,建立外鍵時有個“刪除時”和“更新時”

外鍵建立
在這裏插入圖片描述
裏面有四個選項:RESTRICT(默認):表示子表中有數據,相應父表中刪除之前必須刪除子表中數據;CASCADE:表示父表中刪除該數據時,子表也刪除相應字段下的當條數據;
CASCADE:跟RESTRICT一樣;
SET NULL:表示父表中刪除該數據時,子表關聯字段變爲null;
很容易理解,不演示了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章