MySQL之三范式、ER圖

宋玥珂的突然更新~

范式:設計數(shù)據(jù)庫表時所依據(jù)的規(guī)范

第一范式:一張表內(nèi)字段不重復出現(xiàn) 如課程數(shù)學 課程英語。又比如聯(lián)系方式中既有郵箱又有電話。


一個例子

第二范式:建立在第一范式基礎上 要求非主鍵字段完全依賴主鍵,不能產(chǎn)生部分依賴。盡量不使用聯(lián)合主鍵。

一個反例

解決方式:一共建立三個表。建一個學生表字段為學生編號和姓名 一個教師表字段為教師編號和姓名。 再建一個關(guān)系表 ,把學生編號(外鍵 來自學生表)和教師編號(外鍵 來自教師表)做聯(lián)合主鍵, 這就是一個典型的多對多的設計。

第三范式:在滿足第二范式基礎上,非主鍵字段不能依賴與主鍵字段(不要產(chǎn)生傳遞依賴)。


該表已經(jīng)滿足第二范式 但是非主鍵字段班級名稱依賴班級編號 仍然存在數(shù)據(jù)冗余

解決方式:一對多,在多的一方表中添加指向一的一方的主鍵字段的外鍵。分兩張表存儲。

就像這樣啦

一對一有兩種方案:

1.分兩張表儲存? 共享主鍵

在數(shù)據(jù)庫建表的時候可以將人表的主鍵放置與身份證表里面,也可以將身份證表的主鍵放置于人表里面



2.分兩張表儲存 外鍵唯一


設計時盡量遵循三范式,但是還是要看具體需求。

ER圖


首先放一張被組長大神認可的ER圖

一直以來組長都說ER圖和需求分析十分關(guān)鍵,寫好它們可以防止后期遇到很多的麻煩。本來我是想寫ER圖和需求分析的,但是感覺一時半會理不特別清楚那個邏輯,況且小組的別的同學登錄界面都做出來了,我就準備做登錄界面,甚至圖都P好了。

就是這個帶我logo的圖

但是組長來,說還是要先寫ER圖。于是接下來的三天,我決定去寫ER圖。那就來點干貨吧。

首先要了解ER圖的核心要素:實體,屬性,關(guān)系;實體就是一個個對象,比如貓;屬性就是實體所有的某個屬性,比如貓的性別;關(guān)系就是實體和實體之間或者實體內(nèi)部之間的關(guān)系。其次我們要了解ER圖中怎么表示1中描述的三個核心要素:在ER圖中,矩形代表實體,橢圓代表屬性,菱形代表關(guān)系,各個形狀之間用線段連接。

畫圖不是難點,難的是理清楚之間的關(guān)系,把要實現(xiàn)的功能都想好。

實體變成表,實例變成行,屬性變成列,唯一標識變成主鍵,關(guān)系變成外鍵列和外鍵約束條件。

1.24日的更新

一直看網(wǎng)上的ER圖也沒有頭緒 還是要自己理清 想了兩天的ER圖 啊好崩潰。更難過的是沒有進展,這種感覺很絕望。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容