數(shù)據(jù)庫設(shè)計——向著第三范式努力

雖然伦意,不在專業(yè)的IT公司工作,但我因為我的專業(yè)背景而驕傲甚垦。其實,教育背景也只是半專業(yè)的帶有“師范”后綴的“計算機科學”涣雕,但我因為我的專業(yè)信仰而自豪艰亮。

Learnsite是在我的學校中每節(jié)信息技術(shù)課都要使用的在線學習系統(tǒng)。它很好用挣郭,但并不完美迄埃。同時,又為了在職讀研的畢業(yè)論文兑障,我決定再一次挑(折)戰(zhàn)(磨)自己——自己動手寫一個信息技術(shù)課在線學習系統(tǒng)调俘。

Learnsite中的數(shù)據(jù)庫設(shè)計有很大的問題。一張學生表旺垒,把年級彩库、班級、作業(yè)成績先蒋、表現(xiàn)成績等等全放進去骇钦,十分的冗余。所以自己設(shè)計的時候竞漾,就把它們分成了多個實體眯搭。今天窥翩,我又依稀地想起了這個術(shù)語“第三范式”。找到了理論依據(jù)(沒想到我也能說出這么“學術(shù)”的話)鳞仙,就可以更好的指導我的數(shù)據(jù)庫設(shè)計了寇蚊。

其實,我設(shè)計的數(shù)據(jù)庫也不一定符合那些理論棍好,但總感覺舒心了很多仗岸。各實體分得比較散,怎么輸出一張綜合統(tǒng)計表呢借笙?學過的東西在關(guān)鍵的時候還真是有用扒怖,若干年過去,心里就只剩下一個個一閃而過的關(guān)鍵詞——它也是決定人的專業(yè)方向的關(guān)鍵因素业稼。通過搜索盗痒,你就可以再次拾起這些知識。

今天就設(shè)計了這么幾個表:

年級班級表:grade_classes
學生信息表:students
表現(xiàn)得分表:performance_score

把Learnsite中的一張大表拆分成這樣幾張小表低散,感覺清爽了很多俯邓。但是,如果想要查詢一年級一班(grade_num=1 & class_num=1)學生分表得分的匯總表怎么辦呢熔号?

我突然靈光一閃稽鞭,想起了使用JOIN關(guān)鍵詞連接學生信息表和表現(xiàn)得分表,再根據(jù)給出的年級班級號得出班級代碼跨嘉,最后使用班級代碼對前邊的結(jié)果進行篩選(快轉(zhuǎn)暈了)川慌。經(jīng)過一番努力吃嘿,得出了下邊的SQL:

SELECT
students.student_number, students.student_name, score
FROM
students
JOIN
(
SELECT
    performance_score.student_number, SUM(performance_score.delta_score) AS score
    FROM
    performance_score
    GROUP BY
    performance_score.student_number
)
AS per_s
ON
students.student_number = per_s.student_number
WHERE
students.class_code IN
(
    SELECT
    grade_classes.class_code
    FROM
    grade_classes
    WHERE
    grade_classes.grade_num = 1
    AND
    grade_classes.class_num = 1
)

最后的匯總結(jié)果也符合預期:


一年級一班學生表現(xiàn)得分匯總表

這樣就可以放心大膽地拆分表了祠乃,因為學藝不精,也沒法說這么做是否合適兑燥,不斷努力吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亮瓷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子降瞳,更是在濱河造成了極大的恐慌嘱支,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挣饥,死亡現(xiàn)場離奇詭異除师,居然都是意外死亡,警方通過查閱死者的電腦和手機扔枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門汛聚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人短荐,你說我怎么就攤上這事倚舀√究蓿” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵痕貌,是天一觀的道長风罩。 經(jīng)常有香客問我,道長舵稠,這世上最難降的妖魔是什么超升? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮柱查,結(jié)果婚禮上廓俭,老公的妹妹穿的比我還像新娘。我一直安慰自己唉工,他們只是感情好研乒,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淋硝,像睡著了一般雹熬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谣膳,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天竿报,我揣著相機與錄音,去河邊找鬼继谚。 笑死烈菌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的花履。 我是一名探鬼主播芽世,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诡壁!你這毒婦竟也來了济瓢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤妹卿,失蹤者是張志新(化名)和其女友劉穎旺矾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夺克,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡箕宙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了铺纽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柬帕。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雕崩,到底是詐尸還是另有隱情魁索,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布盼铁,位于F島的核電站粗蔚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏饶火。R本人自食惡果不足惜鹏控,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肤寝。 院中可真熱鬧当辐,春花似錦、人聲如沸鲤看。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽义桂。三九已至找筝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間慷吊,已是汗流浹背袖裕。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溉瓶,地道東北人急鳄。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像堰酿,于是被迫代替她去往敵國和親疾宏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容