在線訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計報告V03_第1頁
在線訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計報告V03_第2頁
在線訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計報告V03_第3頁
在線訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計報告V03_第4頁
在線訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計報告V03_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、實訓(xùn)X班X組文檔編號產(chǎn)品版本密級文件狀態(tài):內(nèi)部草稿V 正式發(fā)布項目名稱在線訂餐系統(tǒng)項目共X頁正在修改在線訂餐系統(tǒng)項目數(shù)據(jù)庫設(shè)計報告文檔作者:八仙過海小組項目組長:王好批準(zhǔn)人:婁芳批準(zhǔn)日期:XXXX年 XX 月 XX 日江西IT人才實訓(xùn)基地Add:江西省南昌高新區(qū)京東大道698號 浙大科技園 創(chuàng)業(yè)大廈D區(qū)Tel:Fax:Code: 330096版本狀態(tài)版本作者參與者起止日期注釋劉垚輸入內(nèi)容、修改排版、增刪章節(jié)審閱者團隊版本日期簽名分發(fā)姓名位置分發(fā)方式分發(fā)日期目錄1 引言 錯誤 ! 未定義書簽。編寫目的 . 錯誤 ! 未定義書簽。編寫約定 . 錯誤 ! 未定義書簽。目錄規(guī)則 . 錯誤 !未定義書簽

2、。正文內(nèi)容 . 錯誤 !未定義書簽。模板標(biāo)注 . 錯誤 ! 未定義書簽。讀者對象 . 錯誤 !未定義書簽。術(shù)語解釋 . 錯誤 !未定義書簽。參考資料 . 錯誤 !未定義書簽。2 數(shù)據(jù)庫環(huán)境說明 . 錯誤 ! 未定義書簽。3 數(shù)據(jù)庫的命名規(guī)則. 錯誤 ! 未定義書簽。4 概念結(jié)構(gòu)設(shè)計 . 錯誤 ! 未定義書簽。5 邏輯結(jié)構(gòu)設(shè)計 . 錯誤 ! 未定義書簽。6物理設(shè)計 . 錯誤 ! 未定義書簽。表匯總 . 錯誤 ! 未定義書簽。表 A 錯誤 ! 未定義書簽。表 N 錯誤 !未定義書簽。7安全性設(shè)計 . 錯誤 ! 未定義書簽。防止用戶直接操作數(shù)據(jù)庫的方法 . 錯誤!未定義書簽。用戶帳號密碼的加密方法.

3、 錯誤 !未定義書簽。角色與權(quán)限 . 錯誤 !未定義書簽。其他. 錯誤!未定義書簽。8 性能優(yōu)化 . 錯誤 ! 未定義書簽。9 數(shù)據(jù)庫管理與維護說明 . 錯誤 ! 未定義書簽。1引言1.1 編寫目的數(shù)據(jù)庫設(shè)計報告描述了一個數(shù)據(jù)庫的設(shè)計, 數(shù)據(jù)庫是將一組相關(guān)數(shù)據(jù)存儲為一個或多個計算機文件,并允許用戶或計算機程序通過數(shù)據(jù)庫管理系統(tǒng)(DBM)S 訪問這些數(shù)據(jù)。它同時也描述了用來訪問或操作這些數(shù)據(jù)的軟件模塊。1.2 編寫約定根據(jù)微軟實訓(xùn)成果展示平臺項目需求書編寫數(shù)據(jù)庫。1.2.1 目錄規(guī)則一級標(biāo)題字體為小三 +黑體+加粗,編號從 1 開始二級標(biāo)題字體為四號 +黑體 +加粗,編號如開始 ,1 為上級編號

4、三級標(biāo)題字體為小四 +黑體 +加粗,編號如開始為上兩級編碼組合;四級標(biāo)題字體為五號 +黑體+加粗,編號如開始 , 為上級編號五級標(biāo)題字體為五號 +黑體 +加粗,編號如 1),重新開始編號;六級標(biāo)題字體為五號+黑體+加粗,編號如(1),重新開始編號;七級標(biāo)題字體為五號+黑體+加粗,編號如a.,重新開始編號;標(biāo)題的字體依次類推,最小字體不得小于五號,都為黑體+加粗;1.2.2正文內(nèi)容正文內(nèi)容都為五號+宋體(首行縮進兩個字符),段間距為倍行距;項目符號可以自行定 義。圖片下方應(yīng)出現(xiàn)圖例“圖*-*-*”圖片需要調(diào)整大小,以適合某章節(jié)中圖片不跳頁而使得上一頁有大量空白。并且每章最后插入一個分頁符,使得各

5、章節(jié)之間互不干擾。表的標(biāo)注在表上方居中顯示“表 *-*-* ” ;表格內(nèi)的字體統(tǒng)一為小五號 +宋體。表格內(nèi)的字體統(tǒng)一為五號 +宋體。1.2.3模板標(biāo)注采用斜體標(biāo)注的是提示部分,供填寫時參考,此部分內(nèi)容需要刪除。采用蘭色字體標(biāo)注的是示例部分,供填寫時參考,此部分內(nèi)容需要刪除。1.3讀者對象在線訂餐系統(tǒng)項目數(shù)據(jù)庫設(shè)計報告的閱讀對象為:1)對相關(guān)業(yè)務(wù)技術(shù)和總體方案作出決策的管理人員和質(zhì)量管理人員;2)對本數(shù)據(jù)需求說明書進行評審和確認(rèn)的有關(guān)業(yè)務(wù)、技術(shù)人員;3)參加詳細設(shè)計,測試設(shè)計階段工作的全體設(shè)計人員;4)在線訂餐系統(tǒng)項目項目組,其他有權(quán)需要調(diào)用本文檔的人員1.4術(shù)語解釋提示:本小節(jié)應(yīng)提供正確理解此

6、軟件構(gòu)架文檔所需的全部術(shù)語的定義、首字母縮寫詞和縮略語。 這些信息可以通過引用項目詞匯表來提供名詞/術(shù)語/縮寫詞解釋1.5參考資料提示:本小節(jié)應(yīng)完整地列出此數(shù)據(jù)庫設(shè)計文檔中其他部分所引用的所有文檔。每個文檔應(yīng)標(biāo)有標(biāo)題、報告號(如果適用)、日期和出版單位。列出可從中獲取這些參考資料的來源 這些信息可以通過引用附錄或其他文檔來提供。2數(shù)據(jù)庫環(huán)境說明1. 待開發(fā)的數(shù)據(jù)庫名稱:404072. 數(shù)據(jù)庫系統(tǒng):SQL Server 20083. 數(shù)據(jù)庫宿主環(huán)境:軟件環(huán)境:Microsoft SQL Server 2008 R2數(shù)據(jù)庫MyEcpIice硬件環(huán)境:In tel Pe ntium 2GHz及以上;

7、800x 600分辨率及以上;內(nèi)存1G及以上4. 客戶端連接工具:或以上版本3數(shù)據(jù)庫的命名規(guī)則數(shù)據(jù)庫命名要遵從以下命名原則:表意性原則:數(shù)據(jù)庫命名本著表意性原則,即命名應(yīng)盡量反映存儲/action/view/column的數(shù)據(jù)內(nèi)容;長名原則:很少使用或者不使用縮寫;數(shù)目最少化原則:數(shù)據(jù)庫對象應(yīng)該盡量滿足數(shù)據(jù)最小化原則,也就是數(shù)據(jù)庫數(shù)目,存儲過程,視圖等數(shù)量最小化。數(shù)據(jù)庫名:數(shù)據(jù)庫數(shù)目最少化原則;數(shù)據(jù)庫名采用Pascal大小寫命名方法;表表名采用Pascal大小寫命名法;整個表名的長度不要超過 30個字符;首字母大寫,多個單詞的話,單詞首字母大寫,反對order/Useraccout/ORDER

8、 ;避免中文拼音;避免下劃線連接,反對User_Accout (下劃線適用 Oracle數(shù)據(jù)庫);避免保留字;表別名命名規(guī)則:取表義名的前3個字符加最后一個字符。如果存在沖突,適當(dāng)增 加字符(如取表義名的前 4個字符加最后一個字符等);數(shù)據(jù)庫中不論是表名還是字段名,都一律用英文,不準(zhǔn)出現(xiàn)其它語言;且保留原來的字段名,保留它們的規(guī)范;表名稱=表內(nèi)容標(biāo)識(首字大寫),如User。命名應(yīng)盡量反映存儲的數(shù)據(jù)內(nèi)容;為了不增加數(shù)據(jù)庫當(dāng)中的表名的長度,一般不允許出現(xiàn)如 Form或者Table的字樣,如:記錄表:應(yīng)為 Record,而不是 RecordTable ;屬性(列或字段)采用有意義的列名;采用Pas

9、cal大小寫命名法;屬性名前不要加表名等作為前綴;必須有一主鍵,主鍵不直接用ID,而是表名+ld ;不要使用“ ID”作為列名;屬性后不加任何類型標(biāo)識作為后綴;避免中文拼音;避免下劃線連接;避免名稱過長;避免保留字。1.1主鍵+ld ;主鍵一般以表名加表示主鍵的意義的詞組成或者表名原則上任何表都必須定義主鍵;原則上反對聯(lián)合主鍵;主鍵命名為:“表名+表示意義的詞”,如Userid 。1.2外鍵外鍵即其主鍵表的主鍵名,所以參考主鍵命名規(guī)范。4概念結(jié)構(gòu)設(shè)計會員編號Integer姓名Characters (8)手機號Integer送貨地址Characters (256)注冊時間Integer會員積分I

10、nteger會員Iden tifier_1菜系菜系管理Characters (10)菜系名稱Characters(15)菜系特色Characters(15)Iden tifier 1訂餐購物車代號 用戶名 應(yīng)收金額購物車 Integer1,1訂單訂單編號 送餐人 會員編號 訂單狀態(tài) 備注 下單時間 應(yīng)收金額 實收金額 送貨地址IntegerCharacters (8)IntegerCharacters (256)Characters (256)Characters (256)IntegerIntegerCharacters (256)訂單明細餐品菜名 Characters (256)廚房出處C

11、haracters (256)烹飪方式Characters (256)圖片Characters (256)介紹Characters (256)價格IntegerIde ntifier_1A優(yōu)惠優(yōu)惠 Characters (15)Identifier_1 Iden tifier_1 管理付款優(yōu)惠管理員管理員 Integer登陸 IPInteger管理員用戶名Characters (256)密碼Identifier_15邏輯結(jié)構(gòu)設(shè)計6物理設(shè)計關(guān)系模型的完整性約束包括實體完整性、參照完整性和用戶定義完整性。主要字段完整性的字段名、完整性約束條件指的是實體完整性。其中實體完整性的規(guī)則如下:1. 實體完

12、整性規(guī)則是針對關(guān)系而言的,而關(guān)系則對應(yīng)一個現(xiàn)實世界中的實體集。2. 現(xiàn)實世界中的實體是可區(qū)分的,它們具有某種標(biāo)識特征;相應(yīng)地,關(guān)系中的元組也是可區(qū)分的,在關(guān)系中用主關(guān)鍵字作唯一性標(biāo)識。3. 主關(guān)鍵字中的屬性,即主屬性不能取空值。在網(wǎng)上訂餐系統(tǒng)中, 管理員表(管理員編號,名稱,密碼,登陸IP,最后登錄時間)中,管理員編號是主關(guān)鍵字,不可以取空值;用戶表(用戶編號,姓名,地址,手機,注冊時間)中,用戶編號是主關(guān)鍵字,不可以取空值;訂單表(訂單編號,手機號,地址,總金額,下單時間,訂單狀態(tài),訂單改變時間,備注,會員編號)中,訂單編號是主關(guān)鍵字,不可以取空值;菜譜表(菜譜編號,菜名,原價,優(yōu)惠價,菜名

13、的介紹,圖片,創(chuàng)建時間)中,菜譜編號是主關(guān)鍵字,不可以取空值;訂單項表(訂單項編號,訂單編 號,姓名,狀態(tài))中,訂單項編號是主關(guān)鍵字,不可以取空值。除了實體完整性之外還有其他與應(yīng)用密切相關(guān)的數(shù)據(jù)完整性約束,例如某個屬性的值必須唯一,某個屬性的取值必須在某個范圍內(nèi),某些屬性值之間應(yīng)該滿足一定的函數(shù)關(guān)系等。類似這些方面的約束不是關(guān)系數(shù)據(jù)模型本身所要求的,而是為了滿足應(yīng)用方面的語義要求提出來的,這些完整性需求需要用戶來定義,所以稱為用戶定義完整性。數(shù)據(jù)庫管理系統(tǒng)需提供定義這些數(shù)據(jù)完整性的功能和手段,以便統(tǒng)一進行處理和檢查, 而不是由應(yīng)用程序去實現(xiàn)這些功能。在用戶定義完整性中最常見的是限定屬性的取值范

14、圍,即對值域的約束,這包括說明屬性的數(shù)據(jù)類型、精度、取值范圍、是否允許空值等。在網(wǎng)上訂餐系統(tǒng)中,訂單信息表中的訂 單編號不允許為空值,用戶表中的用戶編號為唯一值都是用了用戶定義完整性約束。6.1表匯總表名(英文)表名(中文)功能說明表At_user會員會員的一些信息及功能表Bt_order訂單簡述訂單的一些信息及其功能表 t_food餐品餐品的介紹等表t_ma nager管理員管理員的能力表 t_style菜系介紹一些菜系表t_shopp ingcart購物車下訂單之前的一項操作表t_favorable優(yōu)惠有關(guān)訂單金額的一項操作表訂單明訂單的一些具體事務(wù)t_detail細6.2 表 T_use

15、r表名會員T_user列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件會員IDuserIdVachar非空主鍵姓名NameVarchar非空手機號PhoneNumint外鍵送貨地址AddVachar非空注冊時間TimeVachar非空會員積分OrderNumint6.3 表 T_order表名訂單T_order列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件訂單編號inden tIdint非空主鍵送餐人SendNameVarchar非空外鍵會員編號OrderIdint非空訂單狀態(tài)OrderStaeteVarchar非空備注RemarkVarchar下單時間OrderTimeVarchar非空應(yīng)收金

16、額Alim oneyint非空實收金額Moneyint非空送貨地址AddVarchar非空外鍵補充說明6.4 表 T_food表名餐品Food列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件菜名FoodNameVarchar非空主鍵菜系管理StyleVarchar非空管理員Man agerint非空外鍵廚房出處CookVarchar非空烹飪方式Cook ingVarchar非空圖片PicVarchar非空介紹In troduceVarchar非空價格Priceint非空補充說明6.5 表 T_manager表名管理員T_ma nager列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件管理員IDMa

17、n gerldint非空主鍵登錄IPIpVarchar非空登陸用戶名Man aNameVarchar非空密碼Password補充說明6.6 表 T_style表名菜系T_style列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件菜系管理StyleMa nageVarchar非空主鍵菜系分類StyleKi ndVarchar非空菜系特點StyleCharVarchar非空補充說明6.7 表 T_shoppingcart表名購物車t_shopp in gcart列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件購物車代號Shopp in gcartIdint非空主鍵會員名UserId售出物品名FoodN

18、ameVarchar非空會員積分OrderNumint非空應(yīng)收金額Allm oneyint非空補充說明6.8 表 T_favorable表名優(yōu)惠列名數(shù)據(jù)類型(精度范圍)空/非空約束條件優(yōu)惠Varchar非空主鍵訂單編號int非空補充說明6.9 表 T_detail表名菜單明細T_detail列名字段名數(shù)據(jù)類型(精度范圍)空/非空約束條件訂單編號OrderNumint非空主鍵會員名UserId菜名FoodNameVarchar非空價格Priceint非空補充說明7安全性設(shè)計7.1防止用戶直接操作數(shù)據(jù)庫的方法采用三層架構(gòu)開發(fā)該系統(tǒng),用戶只能訪問web層應(yīng)用,并通過web層調(diào)用業(yè)務(wù)邏輯處理 層里面的

19、方法調(diào)用數(shù)據(jù)庫內(nèi)容,完全杜絕了用戶直接操控數(shù)據(jù)庫的方法。7.2 用戶帳號密碼的加密方法采用MD5加密方法,MD5是輸入不定長度信息,輸出固定長度128-bits的算法。經(jīng)過程序流程, 生成四個 32 位數(shù)據(jù), 最后聯(lián)合起來成為一個 128-bits 散列?;痉绞?為,求余、取余、調(diào)整長度、與鏈接變量進行循環(huán)運算。將密碼轉(zhuǎn)換成 32 位數(shù)據(jù)存儲在數(shù)據(jù)庫里,極大地加強了賬戶密碼的安全性。7.3 其他防止SQL注入式攻擊我們的解決方式是:1、 首先在UI錄入時,要控制數(shù)據(jù)的類型和長度、防止SQL注入式攻擊,系統(tǒng)提供檢測 注入式攻擊的函數(shù),一旦檢測出注入式攻擊,該數(shù)據(jù)即不能提交;2、 業(yè)務(wù)邏輯層控制

20、,通過在方法內(nèi)部將 SQL關(guān)鍵字用一定的方法屏蔽掉, 然后檢查數(shù) 據(jù)長度,保證提交 SQL時,不會有SQL數(shù)據(jù)庫注入式攻擊代碼;但是這樣處理后,要求UI 輸出時將屏蔽的字符還原。因此系統(tǒng)提供屏蔽字符 的函數(shù)和還原字符的函數(shù)。3、在數(shù)據(jù)訪問層,絕大多數(shù)采用存儲過程訪問數(shù)據(jù),調(diào)用時以存儲過程參數(shù)的方式訪 問,也會很好的防止注入式攻擊。8性能優(yōu)化最基本的優(yōu)化之一就是使表在磁盤上占據(jù)的空間盡可能小。這能帶來性能非常大的提升, 因為數(shù)據(jù)小, 磁盤讀入較快,并且在查詢過程中表內(nèi)容被處理所占用的內(nèi)存更少。同時,在更小的列上建索引,索引也會占用更少的資源??梢允褂孟旅娴募夹g(shù)可以使表的性能更好并且使存儲空間最小

21、使表的性能更好并且使存儲空間最小使表的性能更好并且使存儲空間最 小使表的性能更好并且使存儲空間最?。?: 1) 使用正確合適的類型, 不要將數(shù)字存儲為字 符串。2)盡可能地使用最有效(最?。┑臄?shù)據(jù)類型。MySQL有很多節(jié)省磁盤空間和內(nèi)存的專 業(yè)化類型。3)盡可能使用較小的整數(shù)類型使表更小。例如,MEDIUMINT經(jīng)常比INT好一些,因為MEDIUMIN例使用的空間要少 25% 4)如果可能,聲明列為NOTNULL它使任何事情更NULL應(yīng)該毫無疑問使用它,快而且每列可以節(jié)省一位。注意如果在應(yīng)用程序中確實需要只是避免默認(rèn)地在所有列上有它。5)對于MylSAM表,如果沒有任何變長列(VARCHARTEXT或BLOB列),使用固定尺寸的記錄格式。這比較快但是不幸地可能會浪費一些空間。即使你已經(jīng)用CREATE選項讓VARCHA列 ROW_FORMAT=fixec也可以提示想使用固定長度的行。6)使用samplecharacterset ,例如latin1 。盡量少使用 utf-8,因為utf-8 占用的空間是latin1 的3倍??梢栽诓恍枰褂胾tf-8的字段上面使用latin1 ,例如mail,url等.9數(shù)據(jù)庫管理與維護說明作為網(wǎng)管員,無論其管理的網(wǎng)絡(luò)的規(guī)模

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論