數據庫設計備忘錄,沒什么新鮮的,只是作為自己的一個備忘~
1、關系: 1:1,1:N,N:N
2、注意在使用多對多關系的時候,由于關系型數據庫的限制,我們必須建立一個中間表,用來表明兩者之間的關系
3、具體的原因是數據庫中的表的主鍵應該是唯一的,但是如果在兩個存在多對多關系的數據表之間表明兩者之間的關系的話,就不能夠保證數據主鍵的唯一性了,比如說:書籍和作者之間的關系,我們假設他們之間是多對多的關系,一本書籍可以有多個作者,一個作者可以寫多本書籍,如果我們是用兩個表來表明他們之間的關系,結構如下:


書籍表:

主鍵????作者外鍵??? 名稱?等其它屬性

作者表:

主鍵???書籍外鍵? 姓名等其它屬性

如果我們要向表中存入數據,那么就會如下所示:

書籍表:

1????????????1???????????應用Rails進行敏捷Web開發
1????????????2?????????? 應用Rails進行敏捷Web開發

作者表:

1????????????1??????????? Dave Thomas
2????????????1??????????? David Heinemeier Hansson

這樣就出現問題了,書籍表中出現了重復的主鍵,這個可是不行的哦

如果加入一個中間連接表,那么問題就解決了,書籍表和作者表只管負責存儲他們各自的信息,不需要存儲他們的關系信息,關系信息讓連接表進行存儲就好了~,表的結構如下:
書籍表:

主鍵???? 名稱?等其它屬性
1???????????? 應用Rails進行敏捷Web開發
2???????????? Ant使用手冊

作者表:

主鍵???? 姓名等其它屬性
1??????????????????? Dave Thomas
2??????????????? David Heinemeier Hansson

連接表:

主鍵????? 書籍外鍵?? 作者外鍵
1??????????????????????1??????????????1
2????????????????????? 1????????????? 2

這樣,問題就解決了~