第三章 doking's blog 數(shù)據(jù)庫的設(shè)計(jì)和連接
構(gòu)建好開發(fā)環(huán)境后,doking's blog數(shù)據(jù)庫規(guī)劃是第三步,它也是直接關(guān)系到數(shù)據(jù)庫以后是否能夠有效運(yùn)行的要害步驟,也是對(duì)一個(gè)數(shù)據(jù)庫開發(fā)人員的規(guī)范要求。
3.1 數(shù)據(jù)庫的規(guī)范化
數(shù)據(jù)庫的規(guī)范化主要體現(xiàn)在表與表之間的關(guān)系、數(shù)據(jù)結(jié)構(gòu)及存儲(chǔ)兩大方面。
3.1.1 數(shù)據(jù)表之間的關(guān)系
許多初學(xué)者經(jīng)常認(rèn)為,建立一個(gè)表儲(chǔ)存所有數(shù)據(jù)就可以了。假如這么認(rèn)為,那經(jīng)常會(huì)造成數(shù)據(jù)冗余的。圖3-1-1是一個(gè)數(shù)據(jù)表,可以看到畫在紅色圈中的數(shù)據(jù)是冗余的。
冗余數(shù)據(jù)會(huì)影響數(shù)據(jù)庫的有效運(yùn)行,甚至可以把數(shù)據(jù)庫推毀。為減少冗余數(shù)據(jù),得把數(shù)據(jù)分開儲(chǔ)存成幾個(gè)表,并建立表與表之間的連接關(guān)系。表與表之間的連接關(guān)系,主要有一對(duì)多、多對(duì)多、一對(duì)一三種方式。
一對(duì)多關(guān)系,它是數(shù)據(jù)庫中最普通的關(guān)系類型。這種關(guān)系雙被稱為是父表與子表關(guān)系或主表與分表關(guān)系。圖3-1-2就體現(xiàn)了一種父表與子表關(guān)系。在這里,專題表與回復(fù)表就是一對(duì)多的關(guān)系。專題表是父表,回復(fù)表是子表,專題表中的一行在回復(fù)表可有零行、一行或許多與之對(duì)應(yīng),而回復(fù)表中的每一行都與專題表中的相應(yīng)的專題對(duì)應(yīng)。
多對(duì)多關(guān)系,就是第一張表的每一行可對(duì)應(yīng)第二張表的許多行,同樣地,第二張表中的每行也可與第一第表中的許多行相對(duì)應(yīng)。例如,一個(gè)專題可以有許多用戶回復(fù),一個(gè)用戶也可以作多次專題回復(fù)。這就需要建立第三張表,將專題代碼與用戶代碼連接,這個(gè)表就是前兩個(gè)表的父表。在圖3-1-3中,“回復(fù)表”就是“專題表”與“用戶表”的父表。
一對(duì)一的關(guān)系,就是將一個(gè)表中的行與另一表中的行連接來。這種關(guān)系非常少見,因?yàn)槿缡怯械脑挘€不如把這兩個(gè)表合為一張表更為合理。
3.1.2 數(shù)據(jù)結(jié)構(gòu)與儲(chǔ)存
數(shù)據(jù)庫的物理結(jié)構(gòu)必須基于邏輯結(jié)構(gòu)建立的,在設(shè)計(jì)表格、字段和關(guān)系時(shí)就需記住一些規(guī)則。行與列的順序并不起什么作用,雖然在數(shù)據(jù)表中,列會(huì)有一定的順序位置,但它們并不以此來代表引用順序。記錄的順序只有在它們從數(shù)據(jù)表中取出并送給用時(shí)才起作用。sql會(huì)通過參數(shù)數(shù)據(jù)庫索引來處理記錄的提取順序。例如,在數(shù)據(jù)表中,把性別字段放在姓名字段之前,這個(gè)錯(cuò)誤沒什么,只要在采用sql語句調(diào)用這個(gè)數(shù)據(jù)表時(shí),記得把姓名字段調(diào)到性別字段之前就可以了。
設(shè)計(jì)數(shù)據(jù)表時(shí),分配字段大小要慎重,在夠用的情況下,能省就省。假如字段用于儲(chǔ)存整數(shù),請(qǐng)用整數(shù)或長(zhǎng)整數(shù),不用單精度或雙精度,假如夠用的話,最好建立100字符的文本類型字段,而不要采用備注字段。為什么?假如你不怕高昂的服務(wù)器費(fèi)用、不怕網(wǎng)絡(luò)數(shù)據(jù)庫運(yùn)行緩慢,你大可不必理會(huì)這些,但它最嚴(yán)重會(huì)導(dǎo)致數(shù)據(jù)庫崩潰。|||
3.2 doking’s blog數(shù)據(jù)庫的設(shè)計(jì)
基于上述數(shù)據(jù)庫規(guī)范化的知識(shí),這節(jié)開始規(guī)劃設(shè)計(jì)doking’s blog數(shù)據(jù)庫。doking’s blog數(shù)據(jù)庫中設(shè)計(jì)了五個(gè)數(shù)據(jù)表,分別是lm表(欄目表)、zt表(學(xué)習(xí)筆記表)、hf表(回復(fù)表)、yh表(用戶表)、gly表(治理員表),并把數(shù)據(jù)庫命名為“dkblog.mdb”,保存在“d:/dat/”目錄下。
lm表即欄目表,用于網(wǎng)站導(dǎo)航條建立和學(xué)習(xí)筆記的歸類,欄目?jī)?nèi)容是由網(wǎng)站的治理員設(shè)計(jì)的,其字段設(shè)計(jì)如圖3-2-1所示
zt表即學(xué)習(xí)筆記表,是用于儲(chǔ)存用戶發(fā)表學(xué)習(xí)心得,其實(shí)字段設(shè)計(jì)如圖3-2-2所示:
hh表即回復(fù)表,儲(chǔ)存著用戶對(duì)已發(fā)表的學(xué)習(xí)筆記的回復(fù),其字段如圖3-2-3所示:
yh表即用戶表,儲(chǔ)存著用戶的注冊(cè)信息,方便用戶登錄發(fā)表學(xué)習(xí)筆記和學(xué)習(xí)筆記的回復(fù)。其字段設(shè)計(jì)如圖3-2-4所示:
gly表即治理員表,用于治理員登錄,治理網(wǎng)站,其字段設(shè)計(jì)如圖圖3-2-5
3.3 創(chuàng)建doking’s blog數(shù)據(jù)庫連接源
(1)啟動(dòng)dreamweaver mx 2004,在【文件】菜單中,選擇【新建】,在【新建對(duì)話框】中,選擇類別為“動(dòng)態(tài)頁”,選擇動(dòng)態(tài)頁為“asp.net vb”,按“創(chuàng)建”按鈕,創(chuàng)建一個(gè)動(dòng)態(tài)網(wǎng)頁。
(2)切換到【應(yīng)用程序】面板,選擇【數(shù)據(jù)庫】選項(xiàng)卡,單擊“ ”號(hào),選擇“ole db連接”,如圖3-3-1所示:
(3)在彈出【ole db連接】對(duì)話框中,輸入連接名稱“dkconn”,單擊“建立”按鈕,如圖3-3-2所示:
(4)進(jìn)入【數(shù)據(jù)連接屬性】頁面,選擇【選擇程序】選項(xiàng)卡,由于要連接的數(shù)據(jù)庫是access2003的數(shù)據(jù)庫,所以在數(shù)據(jù)庫引擎中選擇“microsoft jet 4.0 ole db provider”作為驅(qū)動(dòng)程序,如圖3-3-3所示:|||
(5)選擇【連接】選項(xiàng)卡,選擇要連接數(shù)據(jù)庫為“d:/dkblog/dat/dkblog.mdb”,把“用戶名”和“密碼”的文本框清空,如圖3-3-4
(6)選擇【高級(jí)】選項(xiàng)卡,在設(shè)置訪問權(quán)限中,選擇“readwrite”,如圖3-3-5所示
(7)返回【連接】選項(xiàng)卡,單擊“測(cè)試”按鈕,出現(xiàn)如圖3-3-6對(duì)話框,那說明已經(jīng)把數(shù)據(jù)庫dkblog.mdb連接到站點(diǎn)上了。單擊“確定”按鈕完成數(shù)據(jù)庫的連接工作。在站點(diǎn)的根目錄下面,可以看到增添了一個(gè)新文件“web.config”,以后可以在這個(gè)文件直接對(duì)數(shù)據(jù)庫的連接進(jìn)行修改。
新聞熱點(diǎn)
疑難解答