在當(dāng)前數(shù)據(jù)庫領(lǐng)域,已有越來越多的人開始采用Access。它是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫管理系統(tǒng)和MIS系統(tǒng)開發(fā)工具,具有界面友好、易學(xué)易用、開發(fā)簡單、接口靈活等特點(diǎn)?,F(xiàn)將本人在使用access時(shí)體會(huì)到的一些經(jīng)驗(yàn)在此與大家交流。
數(shù)據(jù)庫設(shè)計(jì)的技巧
1. 統(tǒng)一規(guī)劃
所謂數(shù)據(jù)庫設(shè)計(jì)是指從對現(xiàn)行非計(jì)算機(jī)管理的數(shù)據(jù)庫系統(tǒng)的分析到最終實(shí)現(xiàn)由計(jì)算機(jī)管理的數(shù)據(jù)庫系統(tǒng)的全過程。它包括表、查詢、報(bào)表等的設(shè)計(jì)??偟脑瓌t應(yīng)從提高數(shù)據(jù)處理效率及便于數(shù)據(jù)處理兩方面考慮。
以設(shè)計(jì)學(xué)生成績管理系統(tǒng)為例,在表的設(shè)計(jì)中,是將全校學(xué)生成績設(shè)計(jì)成一個(gè)表,還是分年級設(shè)表,經(jīng)分析按年級設(shè)表將提高數(shù)據(jù)處理速度且便于數(shù)據(jù)的處理,相應(yīng)須設(shè)置一個(gè)參數(shù)表以描述各年級的一些情況,這樣以后在進(jìn)行數(shù)據(jù)處理時(shí)可從參數(shù)表中提取有關(guān)參數(shù)??紤]到在輸入學(xué)生成績時(shí)可能出錯(cuò),故應(yīng)設(shè)計(jì)相應(yīng)的副成績表,這樣每一成績分二次輸入,然后再建立相應(yīng)的主副查詢來核對主副表中的成績是否一致,不一致則進(jìn)行修改。再比如要進(jìn)行十分段、單科每分段、總分每分段等數(shù)據(jù)的統(tǒng)計(jì),可設(shè)計(jì)相應(yīng)的表用Visual Basic程序來進(jìn)行處理并將統(tǒng)計(jì)數(shù)據(jù)自動(dòng)填入相應(yīng)的表中。在字段的設(shè)計(jì)中要盡量減少字段數(shù),比如,學(xué)生名次有班級名次與年級名次,我們可以將這兩個(gè)名次用一個(gè)字段來表示,如用“m/ n”表示,“m“表示班級名次,“n“表示年級名次,這同樣可用Visual Basic程序來實(shí)現(xiàn)。在設(shè)計(jì)報(bào)表時(shí)是以表為基礎(chǔ)來建立報(bào)表還是以查詢?yōu)榛A(chǔ)來建立報(bào)表,顯然以查詢?yōu)榛A(chǔ)來建立報(bào)表靈活方便,可以方便地通過修改查詢及查詢中的有關(guān)條件從而打印出所需要的報(bào)表??傊谶M(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí)要全盤考慮才能設(shè)計(jì)出合理的數(shù)據(jù)庫對象。
2. 設(shè)置好關(guān)鍵字和表間關(guān)系
表的設(shè)計(jì)中關(guān)鍵字的設(shè)置很重要,設(shè)置關(guān)鍵字可以提高查詢等操作的速度。有時(shí)可以用多字段作關(guān)鍵字。兩個(gè)表的關(guān)系也很重要,比如主成績表與副成績表間若沒有建立正確的關(guān)系,則主副查詢將得不到正確的結(jié)果。
3. 設(shè)計(jì)好字段的缺省值
字段的缺省值有時(shí)也需引起注意。比如,在數(shù)字型字段中,因有些記錄中可能沒有輸入過數(shù)據(jù),在用Visual Basic程序處理時(shí)可能會(huì)出現(xiàn)一些不正確的結(jié)果(不知這是否是access 97的Bug),但當(dāng)將其缺省值設(shè)置為“0”后一切正常。
數(shù)據(jù)庫設(shè)計(jì)的技巧
1. 統(tǒng)一規(guī)劃
所謂數(shù)據(jù)庫設(shè)計(jì)是指從對現(xiàn)行非計(jì)算機(jī)管理的數(shù)據(jù)庫系統(tǒng)的分析到最終實(shí)現(xiàn)由計(jì)算機(jī)管理的數(shù)據(jù)庫系統(tǒng)的全過程。它包括表、查詢、報(bào)表等的設(shè)計(jì)??偟脑瓌t應(yīng)從提高數(shù)據(jù)處理效率及便于數(shù)據(jù)處理兩方面考慮。
以設(shè)計(jì)學(xué)生成績管理系統(tǒng)為例,在表的設(shè)計(jì)中,是將全校學(xué)生成績設(shè)計(jì)成一個(gè)表,還是分年級設(shè)表,經(jīng)分析按年級設(shè)表將提高數(shù)據(jù)處理速度且便于數(shù)據(jù)的處理,相應(yīng)須設(shè)置一個(gè)參數(shù)表以描述各年級的一些情況,這樣以后在進(jìn)行數(shù)據(jù)處理時(shí)可從參數(shù)表中提取有關(guān)參數(shù)??紤]到在輸入學(xué)生成績時(shí)可能出錯(cuò),故應(yīng)設(shè)計(jì)相應(yīng)的副成績表,這樣每一成績分二次輸入,然后再建立相應(yīng)的主副查詢來核對主副表中的成績是否一致,不一致則進(jìn)行修改。再比如要進(jìn)行十分段、單科每分段、總分每分段等數(shù)據(jù)的統(tǒng)計(jì),可設(shè)計(jì)相應(yīng)的表用Visual Basic程序來進(jìn)行處理并將統(tǒng)計(jì)數(shù)據(jù)自動(dòng)填入相應(yīng)的表中。在字段的設(shè)計(jì)中要盡量減少字段數(shù),比如,學(xué)生名次有班級名次與年級名次,我們可以將這兩個(gè)名次用一個(gè)字段來表示,如用“m/ n”表示,“m“表示班級名次,“n“表示年級名次,這同樣可用Visual Basic程序來實(shí)現(xiàn)。在設(shè)計(jì)報(bào)表時(shí)是以表為基礎(chǔ)來建立報(bào)表還是以查詢?yōu)榛A(chǔ)來建立報(bào)表,顯然以查詢?yōu)榛A(chǔ)來建立報(bào)表靈活方便,可以方便地通過修改查詢及查詢中的有關(guān)條件從而打印出所需要的報(bào)表??傊谶M(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí)要全盤考慮才能設(shè)計(jì)出合理的數(shù)據(jù)庫對象。
2. 設(shè)置好關(guān)鍵字和表間關(guān)系
表的設(shè)計(jì)中關(guān)鍵字的設(shè)置很重要,設(shè)置關(guān)鍵字可以提高查詢等操作的速度。有時(shí)可以用多字段作關(guān)鍵字。兩個(gè)表的關(guān)系也很重要,比如主成績表與副成績表間若沒有建立正確的關(guān)系,則主副查詢將得不到正確的結(jié)果。
3. 設(shè)計(jì)好字段的缺省值
字段的缺省值有時(shí)也需引起注意。比如,在數(shù)字型字段中,因有些記錄中可能沒有輸入過數(shù)據(jù),在用Visual Basic程序處理時(shí)可能會(huì)出現(xiàn)一些不正確的結(jié)果(不知這是否是access 97的Bug),但當(dāng)將其缺省值設(shè)置為“0”后一切正常。