李娟
摘要:數(shù)據(jù)庫表是數(shù)據(jù)庫中所必需要設(shè)計的內(nèi)容,表結(jié)構(gòu)是否規(guī)范直接關(guān)系到后續(xù)數(shù)據(jù)的保持,這就要求建立一個簡潔、清晰的數(shù)據(jù)庫表。以免存儲冗余信息,造成浪費。
關(guān)鍵詞:數(shù)據(jù)庫 排課 邏輯設(shè)計
中圖分類號:G71 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2015)05(C)-0000-00
對排課進行分析之后,需要設(shè)計一個合適的數(shù)據(jù)庫表,并要求該數(shù)據(jù)庫表滿足前面提到的排課算法以及第三范式,因此筆者對數(shù)據(jù)庫表進行了設(shè)計。
(1) 周課時數(shù)設(shè)定表 周課時數(shù)設(shè)定表主要體現(xiàn)的是年級與課時數(shù)的關(guān)系,這里主要包括各個年級在規(guī)定學(xué)期當(dāng)中一天的課時數(shù)(在這里,課時數(shù)用Ω的一個子集表示,用Kci來表示某個年級的日課時)。
(2) 年級科目設(shè)置表 年級科目設(shè)置表主要體現(xiàn)的是不同年級不同科目之間的關(guān)系,其主要結(jié)構(gòu)是不同年級在每個學(xué)期的科目代碼、周課時數(shù)之間的關(guān)系,還有一天最大節(jié)數(shù)、不同天同一節(jié)最大數(shù)等等。
(3) 教師任教設(shè)置表 教師任教設(shè)置表主要體現(xiàn)的是教師、年級和科目之間的關(guān)系。
(4) 年級科目排課限制表 年級科目排課限制主要體現(xiàn)的是年級、科目與時間之間的關(guān)系,其主要結(jié)構(gòu)是學(xué)期、年級、科目代碼、固定教室代碼、每日時間段允許標(biāo)志等(每日時間段允許標(biāo)志值用0或1來表示,0表示不允許在這段時間安排課程,1表示允許)。
表結(jié)構(gòu)參見下表1所示。
(5) 教師排課表 教師排課表主要體現(xiàn)的是教室、年級與時間之間存在的關(guān)系,它是由年級代碼、教師代碼、時間允許標(biāo)志等組成(該表的設(shè)計思想模仿了年級科目排課表,即每日時間允許標(biāo)志值用0和1來表示,0表示不允許在該時間段安排課程,1表示允許)。
(6) 固定課程設(shè)置表 固定課程設(shè)置表主要體現(xiàn)的是班級、課程與時間之間的關(guān)系,其主要結(jié)構(gòu)是學(xué)期、年級、班級、教師代碼、周、節(jié)、科目等(自動排課前預(yù)先設(shè)置的固定課程均作為記錄保存在該表中,也就是某個班級在指定時間段的課程設(shè)置)。參見表2所示。
上面的表中,第幾天用WK表示,第幾節(jié)用JJ表示。由于不同年級、不同學(xué)期在每天的課時數(shù)會發(fā)生改變,所以這里采用序列號,即某節(jié)課只是在該年級、該學(xué)期有意義,在其它情況下無意義。例如10年級在周一上午4節(jié)課,12年級在周一上午2節(jié)課,那么第4節(jié)課對10年級來說是上午第4節(jié)課,對12年級來說就是下午第2節(jié)課,在這種情況下,每周課時數(shù)設(shè)定表要與固定課程設(shè)置表配合起來使用,避免產(chǎn)生沖突。
(7) 學(xué)校課程表 學(xué)校課程表指的是課程總表,其主要結(jié)構(gòu)是年級、學(xué)期、某個班級在每周、每節(jié)的科目以及教室代碼、教師代碼(這是排課的最總結(jié)果,也就是某個教師在一周的某一天給那個班級上那一門課的具體安排,以課時周為循環(huán)周期)。參見表3-3所示。
其中WK、JJ對應(yīng)的是“固定課程設(shè)置表”中的相應(yīng)字段,為了在生成課程表時可以按照班級生成對應(yīng)的班級課程表在表3-3中設(shè)計了JSDM和JSID字段,這樣即可以按照教室生成教室課程表,還按照教師生成教師課程表以方便不同用戶在不同需要下查詢。
數(shù)據(jù)庫表的邏輯設(shè)計
能否正確的使用數(shù)據(jù)結(jié)構(gòu)關(guān)系到是否可以其他應(yīng)用程序的內(nèi)容,因此在設(shè)計數(shù)據(jù)庫時,一定要確保數(shù)據(jù)正確分布到數(shù)據(jù)庫的表中。排課參數(shù)在這里會確定課程編
排所需要的實體,下面是各表之間的關(guān)系。
(1) 科目字典表和學(xué)校課程表 這兩個表在使用時采用的是一個表對應(yīng)多個表的關(guān)系。在學(xué)校的課表中一門課程可能會出現(xiàn)兩次或以上的情況,例如一個年級可能會有若干個班級,那么不同的班級就有可能上相同的公共課程,一門課程也可能在一周內(nèi)上兩次以上。
(2) 科目字典表和教師任教設(shè)置表 這兩個表在使用時采用的是一個表對應(yīng)多個表的關(guān)系。一個年級的不同班級需要上同一科目,甚至需要多名教師任教,對于某一個科目,由于班一名教師可以同時教授不同班級。
(3) 科目字典表和固定課程設(shè)置表 這兩個表在使用時采用的是一個表對應(yīng)多個表的關(guān)系。在學(xué)校課表中一門課程在固定課程表中可能出現(xiàn)兩次或以上,這就是與在學(xué)校課程表所出現(xiàn)的情況中類似,也就是說同一年級中的不同班級可能會要上同一門課程。
(4) 科目字典表和年級科目設(shè)置表 這兩個表在使用時采用的是一個表對應(yīng)多個表的關(guān)系,不同班級或班級在同一學(xué)期內(nèi)的課時數(shù)可能不同。
(5) 年級科目表和年級科目排課表 這兩個表在使用時采用的是一個表對應(yīng)一個表的關(guān)系。每個年級都對應(yīng)于它所上的每個科目,不會出現(xiàn)重復(fù)現(xiàn)象。
(6) 固定教室字典表和科目排課表 這兩個表在使用時采用的是一個表對應(yīng)多個表的關(guān)系。一個教師根據(jù)需要有時候可能會擔(dān)任同一年級兩門及以上的課程,那么在這種情況下就可以給該教師在不同的時間里安排不同的課程。
(7) 教師排課表和教師任教表 這兩個表在使用時采用的是一個表對應(yīng)多個表的關(guān)系。在學(xué)校里有時候根據(jù)需要,一個教師不但要擔(dān)任同一年級不同的課程,還有可能擔(dān)任不同年級的的不同課程,這樣一名教師不但可以任教不同的年級,也可以任教不同的年同課程,一名教師也可能不止在本系或本學(xué)院擔(dān)任課程,還可能在其他系或?qū)W院擔(dān)任不同的課程。
參考文獻(xiàn)
[1] 鄭廣成. ASP. NET中AWSMVC架構(gòu)模式研究. 河北科技大學(xué)學(xué)報, 2011, (6): 598-604
[2] 張永弟, 岳彥芳. 基于Web的CAPP與MES信息集成化管理系統(tǒng), 河北科技大學(xué)學(xué)報, 2008, (2): 152-157
[3] 白云飛, 倪素虹. 基于自適應(yīng)遺傳算法的智能組卷的研究. 河北工業(yè)科技, 2006, 23(4): 210-212
[4] 李穎, 張世民. 基于Web的高校戶籍管理系統(tǒng)研究. 河北工業(yè)科技, 2009, 9(5): 319-350