※ 引述《Adonisy (拍手小安)》之銘言:
: 1個學生可以擁有一張證照,但該證照只能被一位學生所擁有啊...
: 例如,甲同學有 MCSE證照,但這個 MCSE證照只能被甲擁有啊,因為證照上有
: 證照 id是屬唯一性,某乙也會有他自己的 MCSE證照
: 所以我會設計
: Student(SID,......) 學生
: License(SID,LID) 學生所持有證照
: 在 license資料表上,再加上 score代表分數,允許 null,沒有就是沒分數
: 除非還有別的需求
我之所以認為,原 po要把需求寫清楚,目的就是,所有的資料庫設計,沒有所謂的
對與錯 , 重點在你能不能把需求用資料庫呈現出來
如果你要記學生的證照,只是為了日後可以方便列出該位學生有哪些證照,用
2個 table即可,就是 1對多的 student與 license
若如果你會需要在使用者輸入證照時,列出一堆已有的證照讓使用者選,就是把
學生與證照當成多對多看待,所以有三個資料表
所以我也認為,這就是設計資料庫會讓人頭痛的主因
不過話說回來,如果我獨立一個 table,專門記錄有哪些證照種類,而不與原本的
資料表關聯,乍看之下沒有做到正規化,但如果資料量太大時,確實也可以考慮此
種做法.... 所以,如何有效的想像你未來系統會長的如何,也很重要
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.230.166.122