作者Adonisy (拍手小安)
看板Database
标题Re: [SQL ] 一个设计 Table 的问题
时间Sat Feb 9 00:28:03 2008
※ 引述《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