機房收費系統已經進行了一段時間,前兩天收到通知,要抽查機房重構,而我也成為其中之一。所以雖然機房驗收過了,又再次重新自己檢驗,調試,整體文檔的過程。經過師父一番指導,收獲頗多。對機房重構有了進一步的認識。
機房收費系統中,管理員有項結賬功能,目的是為操作員結賬結賬內容如圖
其中有售卡張數,退卡張數,收入金額等,而沒有消費金額。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICAgICDV4srH0vLOqrLZ1/fUsda7ysfSu7j2uLrU8MrVyOvWp7P2tcShsLncvNKhsSy2+NXm1f21xNGn0KPK1cjrysfRp8n6z/u30bXExMeyv7fWoaM8L3A+CjxwPiAgICAgICAgvtm49sD919OjusTjsOzA7cHL0rvVxb+oo6yyotTawO/D5rPkJiMyMDU0MDvByzEwMNSqo6zP+7fRwcsyMNSq1q66877Nzcu/qMHLo6zNy7j4wcvE4zgw1KosxMfDtNGn0KO1xNXm1f3K1cjrvs3Kx8THMjDUqqGjtviy2df31LHWu8rHuLrU8NXiuPa5/bPMo6zWu8rHuLrU8LLZ1/ew1cHLo6zL+dLUy/u6zdGnyfrP+7fRtuDJ2crHw7vT0LnYz7W1xKGjPC9wPgo8cD7L+dLU1NrI1b3h1cu1pbrN1ty94dXLtaXW0L7N09DP+7fRvfC27tXi0rvP7jwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20150525/20150525094218208.jpg" alt="\">
在這個表中,消費金額才是學校真正的收入,而充值金額雖然多,但學生可能隨時可以退卡。這部分並不是學校的真正收入。
理清了這一部分,所以操作員中結賬按鈕和日結賬單和周結賬單並不掛鉤。
我的機房收費中,將卡表和學生表合並到一張表裡面。如圖
系統中也是嚴格按照三范式。雖然並沒有什麼錯,但我認為在實際應用中還是要從實際業務出發,也就是具體業務具體分析。
嚴格的E-R圖中,所有實體關系應該是一對多的,不存在多對多,如果這樣就要再抽出一張表。而一對一的關系也完全可以放到一張表中,因為一個學生嚴格的對應一張卡,反之亦然。而且學生表字段和卡表字段並不是非常多,放到一張表並不會造成數據量太大的問題。
放到一張表,我完全可以只操作一張表就可以操作所有信息,避免了容易修改學生信息的同時,忘接了修改卡表,造成信息不對稱的結果。操作效率也大大提高。
通過這次師父講解,我認為在實際的系統設計中,我們應該多思考一下,是不是要采用“第三范式”,不要再盲目追捧。