1.4 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)的設(shè)計(jì)在程序開發(fā)中起著至關(guān)重要的作用,它往往決定了在后面的開發(fā)中如何進(jìn)行程序編碼。一個(gè)合理、有效的數(shù)據(jù)庫(kù)設(shè)計(jì)可降低程序的復(fù)雜性,使程序開發(fā)的過程更為容易。
1.4.1 數(shù)據(jù)庫(kù)分析
本系統(tǒng)是一個(gè)中型的供求信息網(wǎng)站,考慮到開發(fā)成本、用戶信息量及客戶需求等問題,決定采用Microsoft SQL Server 2005作為項(xiàng)目中的數(shù)據(jù)庫(kù)。
Microsoft SQL Server是一種客戶/服務(wù)器模式的關(guān)系型數(shù)據(jù)庫(kù),具有很強(qiáng)的數(shù)據(jù)完整性、可伸縮性、可管理性、可編程性;具有均衡與完備的功能;具有較高的性價(jià)比。SQL Server數(shù)據(jù)庫(kù)提供了復(fù)制服務(wù)、數(shù)據(jù)轉(zhuǎn)換服務(wù)、報(bào)表服務(wù),并支持XML語(yǔ)言。使用SQL Server數(shù)據(jù)庫(kù)可以大容量地存儲(chǔ)數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行合理的邏輯布局,應(yīng)用數(shù)據(jù)庫(kù)對(duì)象可以對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的操作。SQL Server 2005也提供了JDBC編程接口,這樣可以非常方便地應(yīng)用Java來操作數(shù)據(jù)庫(kù)。
1.4.2 數(shù)據(jù)庫(kù)概念設(shè)計(jì)
根據(jù)以上對(duì)系統(tǒng)所作的需求分析及系統(tǒng)設(shè)計(jì),規(guī)劃出本系統(tǒng)所使用的數(shù)據(jù)庫(kù)實(shí)體,分別為供求信息實(shí)體、信息類別實(shí)體和管理員實(shí)體。下面分別介紹這些實(shí)體并給出它們的E-R圖。
供求信息實(shí)體。
供求信息實(shí)體包括信息編號(hào)、所屬類型、信息標(biāo)題、信息內(nèi)容、聯(lián)系人、聯(lián)系電話、E-mail、發(fā)布時(shí)間、審核狀態(tài)和付費(fèi)狀態(tài)屬性。其中審核狀態(tài)與付費(fèi)狀態(tài)屬性分別用來標(biāo)識(shí)信息是否審核與付費(fèi),1表示“是”,0表示“否”。供求信息實(shí)體的E-R圖如圖1.20所示。
信息類別實(shí)體。
信息類別實(shí)體包括類別編號(hào)、類別標(biāo)識(shí)、類別名稱和類別介紹屬性,其E-R圖如圖1.21所示。
1.4.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)
根據(jù)1.4.2節(jié)的數(shù)據(jù)庫(kù)概念設(shè)計(jì),需要?jiǎng)?chuàng)建與實(shí)體對(duì)應(yīng)的數(shù)據(jù)表,它們?yōu)閿?shù)據(jù)表tb_info、tb_type和tb_user,分別對(duì)應(yīng)著供求信息實(shí)體、信息類別實(shí)體和管理員實(shí)體。其中數(shù)據(jù)表tb_info與tb_type之間相互關(guān)聯(lián),后面將會(huì)給出它們之間的關(guān)系圖。
為了使讀者對(duì)本系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)有一個(gè)更清晰的認(rèn)識(shí),下面給出數(shù)據(jù)庫(kù)中所包含的數(shù)據(jù)表的結(jié)構(gòu)圖,如圖1.23所示。
1.各數(shù)據(jù)表的結(jié)構(gòu)
本系統(tǒng)共包含3個(gè)數(shù)據(jù)表,下面分別介紹這些表的結(jié)構(gòu)。
? tb_info(供求信息表)。
供求信息表用來保存發(fā)布的所有類別的信息,該表的結(jié)構(gòu)如表1.6所示。
其中info_type字段表示信息所屬類別,它與info_type表中的type_sign字段相關(guān)聯(lián)。info_state字段和info_payfor字段分別用來表示信息的審核狀態(tài)與付費(fèi)狀態(tài),取值為1表示“已通過審核”或“已付費(fèi)”狀態(tài),取值為0表示“未通過審核”或“未付費(fèi)”狀態(tài)。
? tb_type(信息類別表)。
信息類別表用來保存信息所屬的類別,如招聘信息、求職信息等,該表的結(jié)構(gòu)如表1.7所示。
2.?dāng)?shù)據(jù)表之間的關(guān)系設(shè)計(jì)
本系統(tǒng)設(shè)置了如圖1.24所示的數(shù)據(jù)表之間的關(guān)系,該關(guān)系實(shí)際上也反映了系統(tǒng)中各個(gè)實(shí)體之間的關(guān)系。在設(shè)置該關(guān)系后,當(dāng)更新tb_type數(shù)據(jù)表的type_sign字段的內(nèi)容時(shí),就會(huì)自動(dòng)更新tb_info數(shù)據(jù)表的info_type字段的內(nèi)容。