版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 .目 錄設(shè)計思想IV關(guān)鍵字IV第一章選題說明1第二章數(shù)據(jù)庫解構(gòu)2.1概念解構(gòu)設(shè)計32.2邏輯結(jié)構(gòu)設(shè)計72.3物理結(jié)構(gòu)設(shè)計7第三章數(shù)據(jù)庫設(shè)計3.1安全控制93.2數(shù)據(jù)操作功能103.3視圖設(shè)計113.4存儲過程設(shè)計123.5代碼實(shí)現(xiàn)13第四章系統(tǒng)初始化19第五章系統(tǒng)界面演示23第六章總結(jié)28致謝30參考文獻(xiàn)30 .頁腳. 【設(shè)計思想】經(jīng)過一學(xué)期來對數(shù)據(jù)庫系統(tǒng)概論這一課程的學(xué)習(xí),我學(xué)到了很多管理各類數(shù)據(jù)的科學(xué)方法,也學(xué)會了如何在學(xué)習(xí)的過程中不斷的去實(shí)踐,根據(jù)已知去探索未知,這次設(shè)計就是一個很好的例子。由于本人很早就有了網(wǎng)絡(luò)創(chuàng)業(yè)的想法,也有很多計劃,其中以O(shè)2O(Online to Offline
2、)為經(jīng)營模式的網(wǎng)上超市虛擬商店,最為完備?,F(xiàn)在我就借此數(shù)據(jù)庫課程設(shè)計的機(jī)會開始虛擬商店的管理系統(tǒng)設(shè)計過程。由于水平有限,對數(shù)據(jù)庫功能的掌握還不完善,因此本次課程設(shè)計就以虛擬商店管理系統(tǒng)中的倉庫管理部分為主,以倉庫的數(shù)據(jù)庫建立過程為重點(diǎn)進(jìn)行設(shè)計,力求在完成這一部分的同時更加深入地學(xué)習(xí)數(shù)據(jù)庫及相關(guān)知識,為今后系統(tǒng)的完成、乃至創(chuàng)業(yè)的成功打牢基礎(chǔ)。我的大體設(shè)計思想如下:管理系統(tǒng)的數(shù)據(jù)庫部分采用MS SQL Server,界面部分為了方便日后開發(fā)而采用JSP技術(shù)。即使用JDBC技術(shù)對接JSP界面和SQL Server數(shù)據(jù)庫。數(shù)據(jù)庫設(shè)計方面面向?qū)嶋H完成基本的建表、關(guān)聯(lián)、視圖、存儲過程等;界面部分以驅(qū)動接口
3、實(shí)現(xiàn)與數(shù)據(jù)庫的動態(tài)相連,并以簡潔卻不失詳細(xì)的界面實(shí)現(xiàn)常用的、個性化的功能。整個工程采用結(jié)構(gòu)化的方式進(jìn)行推進(jìn),逐步完善系統(tǒng)功能。不論設(shè)計成功與否,我都要感謝老師給予我這次實(shí)踐的機(jī)會,讓我能夠正規(guī)、完善、系統(tǒng)化地開發(fā)自己需要的軟件,為即將面臨的畢業(yè)設(shè)計、工作實(shí)習(xí)做好充分的準(zhǔn)備。關(guān)鍵字:O2O;虛擬商店;數(shù)據(jù)庫;倉庫管理系統(tǒng)第一章選題說明O2O對許多人來說也許還是一個陌生的詞,但在電子商務(wù)蓬勃發(fā)展的今天,O2O越來越活躍地出現(xiàn)在人們眼前。O2O即Online to Offline,也即將線下商務(wù)的機(jī)會與互聯(lián)網(wǎng)結(jié)合在了一起,讓互聯(lián)網(wǎng)成為線下交易的前臺。該模式可以實(shí)現(xiàn)顧客在網(wǎng)媒上對商品或服務(wù)進(jìn)行消費(fèi),在
4、線下便可獲取商品或享受服務(wù),這極大地縮短了人們的購物流程、便利了人們的生活。虛擬商店便是這樣一種產(chǎn)物,他將傳統(tǒng)的超市與B2C結(jié)合起來,用戶只用花費(fèi)很短的時間,在虛擬商店上選購好商品完成支付后,便可享受到虛擬商店的打包、配送服務(wù),用戶可到超市店面、派發(fā)點(diǎn)、甚至自家門口(派送)領(lǐng)取到所需的商品虛擬商店快速購買方式虛擬商店條碼掃面方式可見,虛擬商店的經(jīng)營模式?jīng)Q定了,要想實(shí)現(xiàn)這一流程,一個好的貨倉管理系統(tǒng)是最基礎(chǔ)的,因?yàn)橛脩舻乃羞x購操作都是直接與倉庫對話的,而且如今的倉庫作業(yè)和庫存控制作業(yè)已十分復(fù)雜化多樣化,僅靠人工記憶和手工錄入,不但費(fèi)時費(fèi)力,而且容易出錯,給企業(yè)帶來巨大損失。使用倉庫管理系統(tǒng),對
5、倉庫各環(huán)節(jié)實(shí)施全過程控制管理,并可對貨物進(jìn)行貨位、批次、保質(zhì)期、配送等管理,對整個收貨、發(fā)貨、補(bǔ)貨、集貨、送貨等各個環(huán)節(jié)的規(guī)范化作業(yè)。本次課程設(shè)計就以其倉庫管理系統(tǒng)部分為課題,力求為虛擬商店構(gòu)想的實(shí)現(xiàn)打下堅實(shí)的基礎(chǔ)。第二章數(shù)據(jù)庫解構(gòu)該倉庫管理系統(tǒng)部分需要完成的主要功能包含:a) 基本資料管理:1 供貨單位管理:設(shè)置并管理供貨商檔案,檔案信息包括客戶編號、客戶名稱、地址、聯(lián)系人、聯(lián)系電話和備注信息。2 收貨單位管理:設(shè)置并管理收貨單位檔案,檔案信息包括客戶編號、客戶名稱、地址、聯(lián)系人、聯(lián)系電話和備注信息。3 貨品檔案管理:檔案信息包括貨品名稱、編號、貨品描述、計量單位、備注說明。4 庫管人員設(shè)置
6、:設(shè)置并管理倉庫管理人員。b) 倉庫貨物進(jìn)出管理:1 貨品入倉管理:可以自動生成入庫單號,貨品及客戶選擇方便快捷,不限制每筆入庫單貨物筆數(shù)。2 貨品出倉管理:可以自動生成出庫單號,貨品及客戶選擇方便快捷,不限制每筆出貨單貨物筆數(shù)。3 貨品盤點(diǎn)管理:可以自動生成盤點(diǎn)單號,貨品選擇方便快捷。c) 庫存查詢及統(tǒng)計:1 庫存查詢:可以隨時查詢各種貨品庫存,貨品自動分類匯總統(tǒng)計。2 單據(jù)查詢:可以隨時查詢?nèi)霂臁⒊鰩?、盤點(diǎn)等各種貨物單據(jù)。3 綜合查詢:可以隨時查詢不同時間段、憑證號、客戶、貨品等查詢條件查詢?nèi)搿⒊?、盤等數(shù)據(jù),并能對查詢數(shù)據(jù)進(jìn)行統(tǒng)計匯總。d) 庫存分析報警:1 庫存上下限設(shè)置:可以設(shè)定倉庫庫
7、存中各項貨品的庫存上下限。2 庫存異常情況自動報警:自動對低于庫存下限或高于上限的品種進(jìn)行報警提示。2.1概念結(jié)構(gòu)設(shè)計倉庫管理系統(tǒng)可以劃分的實(shí)體有:供貨單位信息實(shí)體、收貨單位信息實(shí)體、貨品信息實(shí)體、計量單位信息實(shí)體、倉管人員信息實(shí)體、貨品入倉信息實(shí)體、貨品出倉信息實(shí)體、庫存上下限信息實(shí)體。供貨單位信息實(shí)體E-R圖:供貨單位實(shí)體客戶編號客戶名稱 地 址聯(lián)系人聯(lián)系電話備注說明 圖2-1供貨單位實(shí)體E-R圖收貨單位信息實(shí)體E-R圖:收貨單位實(shí)體客戶編號客戶名稱 地 址聯(lián)系人聯(lián)系電話備注說明圖2-2收貨單位實(shí)體E-R圖貨品檔案信息實(shí)體E-R圖:貨品檔案實(shí)體貨品名稱貨品編號貨品描述計量單位備注說明圖2-
8、3貨品檔案實(shí)體E-R圖計量單位信息實(shí)體E-R圖:計量單位實(shí)體 編 號計量單位計量描述圖2-4計量單位實(shí)體E-R圖庫管人員信息實(shí)體E-R圖:庫管人員實(shí)體姓名登錄帳號登錄密碼用戶類型備注說明圖2-5庫管人員實(shí)體E-R圖貨品入倉信息實(shí)體E-R圖:貨品入倉信息實(shí)體貨品入倉單號貨品名稱計量單位入倉數(shù)量入倉日期庫管人員供貨單位圖2-6貨品入倉信息實(shí)體E-R圖貨品出倉信息實(shí)體E-R圖:貨品出倉信息實(shí)體貨品出倉單號貨品名稱 計 量 單 位出倉數(shù)量出倉日期庫管人員收貨單位圖2-7貨品出倉信息實(shí)體E-R圖貨品盤點(diǎn)信息實(shí)體E-R圖:貨品盤點(diǎn)信息實(shí)體貨品盤點(diǎn)單號貨品名稱 計 量 單 位盤點(diǎn)數(shù)量盤點(diǎn)日期庫管人員名稱圖2
9、-8貨品盤點(diǎn)信息實(shí)體E-R圖庫存上下限信息實(shí)體E-R圖:庫存上下限實(shí)體貨品名稱計量單位庫存上限庫存下限圖2-9庫存上下限實(shí)體E-R圖2.2邏輯結(jié)構(gòu)設(shè)計根據(jù)基本E-R圖,確定倉管系統(tǒng)關(guān)系模式為:客戶客戶編號,客戶標(biāo)志,客戶名稱,地址,聯(lián)系人,聯(lián)系電話,備注說明,主鍵是客戶編號。貨品貨品編號,貨品名稱,計量單位編號,貨品描述,備注說明,主鍵是貨品編號。計量單位計量單位編號,計量單位,計量描述,主鍵是計量單位編號。庫管人員庫管人員編號,登錄帳號,登錄密碼,姓名,用戶類型,備注說明,主鍵是庫管人員編號。貨品入倉信息貨品入倉單號,貨品編號,入倉數(shù)量,入倉日期,庫管人員編號,客戶編號,主鍵是貨品入倉單號。
10、貨品出倉信息貨品出倉單號,貨品編號,出倉數(shù)量,出倉日期,庫管人員編號,客戶編號,主鍵是貨品出倉單號。貨品盤點(diǎn)信息貨品盤點(diǎn)單號,貨品編號,盤點(diǎn)數(shù)量,盤點(diǎn)日期,庫管人員編號,主鍵是貨品盤點(diǎn)單號。庫存上下限信息貨品編號,庫存上限,庫存下限,主鍵是貨品編號。2.3物理結(jié)構(gòu)設(shè)計表1:Customer 客戶信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明CustomerId數(shù)值型否客戶編號CustomerType數(shù)值型1否客戶類型CustomerName文本型60否客戶名稱Address文本型180否地址Contact文本型20否聯(lián)系人ContactPhone文本型60否聯(lián)系電話Memo文本型800是備注說明表2:
11、Goods 貨品信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明GoodsId數(shù)值型否貨品編號GoodsName文本型60否貨品名稱MeasureId數(shù)值型否計量單位編號Describe文本型180是貨品描述Memo文本型800是備注說明表3:Measure 計量單位信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明MeasureId數(shù)值型否計量單位編號MeasureName文本型20否計量單位名稱Describe文本型180是計量描述表4:Storeman 庫管人員信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明StoremanId數(shù)值型否庫管人員編號LoginName文本型16否登錄帳號LoginPassword文本型8
12、否登錄密碼Name文本型20否姓名UserType數(shù)值型1否用戶類型Memo文本型800是備注說明表5:EntryInfo 貨品入倉信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明EntryId數(shù)值型否貨品入倉單號GoodsId數(shù)值型否貨品編號EntryAmount數(shù)值型否入倉數(shù)量EntryDate日期型否入倉日期StoremanId數(shù)值型否庫管人員編號CustomerId數(shù)值型否供貨客戶編號表6:ExportInfo 貨品出倉信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明ExportId數(shù)值型否貨品出倉單號GoodsId數(shù)值型否貨品編號ExportIdAmount數(shù)值型否出倉數(shù)量ExportDate日期型否出
13、倉日期StoremanId數(shù)值型否庫管人員編號CustomerId數(shù)值型否收貨客戶編號表7:CheckInfo 貨品盤點(diǎn)信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明CheckId數(shù)值型否貨品盤點(diǎn)單號GoodsId數(shù)值型否貨品編號CheckAmount數(shù)值型否盤點(diǎn)數(shù)量CheckDate日期型否盤點(diǎn)日期StoremanId數(shù)值型否庫管人員編號表8:StorehouseAlert 庫存上下限信息表設(shè)計列名數(shù)據(jù)類型長度是否為空說明GoodsId數(shù)值型否貨品編號UpAlert數(shù)值型否庫存上限D(zhuǎn)ownAlert數(shù)值型否庫存下限第三章數(shù)據(jù)庫設(shè)計3.1安全控制倉管系統(tǒng)的用戶分如下幾類:系統(tǒng)管理員:具有系統(tǒng)的全部權(quán)限
14、。庫管員:具有貨品出、入倉數(shù)據(jù)的維護(hù)權(quán)。盤點(diǎn)員:具有設(shè)置庫存上下限信息,貨品盤點(diǎn)數(shù)據(jù)的維護(hù)權(quán)。在實(shí)現(xiàn)時,將每一類用戶作為一個角色實(shí)現(xiàn),這樣在授權(quán)時只需對角色授權(quán),而無需對每個具體的用戶授權(quán)。3.2數(shù)據(jù)操作功能數(shù)據(jù)操作功能包括對這些數(shù)據(jù)進(jìn)行錄入、刪除、修改功能,具體如下:(1) 數(shù)據(jù)錄入包括對這8張表的數(shù)據(jù)的錄入,只有具有相應(yīng)權(quán)限的用戶才能錄入相應(yīng)表中的數(shù)據(jù)。(2) 數(shù)據(jù)刪除包括對這8張表的數(shù)據(jù)的刪除,只有具有相應(yīng)權(quán)限的用戶才能刪除相應(yīng)表中的數(shù)據(jù),刪除數(shù)據(jù)時要注意表之間的關(guān)聯(lián)關(guān)系,比如刪除計量單位信息表中的數(shù)據(jù),必須貨品信息表中沒有貨品引用到該計量單位。另外,在實(shí)際進(jìn)行刪除之前應(yīng)該提醒用戶確認(rèn)是
15、否真的要刪除此數(shù)據(jù)。(3) 數(shù)據(jù)修改當(dāng)某些數(shù)據(jù)發(fā)生變化或某些數(shù)據(jù)錄入不正確時,應(yīng)該允許用戶對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改,進(jìn)行修改數(shù)據(jù)的操作時,一般時先根據(jù)一定條件查詢出要修改的記錄,然后再對其中的某些記錄進(jìn)行修改,修改完后再寫回到數(shù)據(jù)庫中去,同數(shù)據(jù)的錄入與刪除一樣,只有具有相應(yīng)權(quán)限的用戶才能修改相應(yīng)表中的數(shù)據(jù)。(4) 數(shù)據(jù)查詢在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,數(shù)據(jù)查詢時最常用的功能,倉管系統(tǒng)應(yīng)具有的查詢要求有:庫存查詢,查詢各種貨品實(shí)時庫存情況。單據(jù)查詢,查詢?nèi)霂?、出庫、盤點(diǎn)等各種貨物單據(jù)。綜合查詢,查詢不同時間段、憑證號、客戶、貨品等查詢條件查詢?nèi)搿⒊?、盤等數(shù)據(jù)。庫存異常情況查詢,查詢低于庫存下限或高于上限的
16、貨品數(shù)據(jù)。3.3視圖設(shè)計對入倉操作,客戶只能選擇供貨客戶標(biāo)志的客戶,對于出倉操作,客戶只能選擇收貨客戶標(biāo)志的客戶,考慮到還有既是供貨客戶,又是收貨客戶的情況,設(shè)計上用1代表供貨客戶標(biāo)志,2代表收貨客戶標(biāo)志,3代表既是供貨客戶也是收貨客戶,雖然都是基于客戶信息表的查詢,顯示字段一樣,但由于數(shù)據(jù)范圍不同,可以通過設(shè)計供貨客戶視圖和收貨客戶視圖來實(shí)現(xiàn)。視圖1:View_SupplyCustomer供貨客戶視圖列名數(shù)據(jù)類型說明CustomerId數(shù)值型客戶編號CustomerName文本型客戶名稱Address文本型地址Contact文本型聯(lián)系人ContactPhone文本型聯(lián)系電話Memo文本型備注
17、說明條件:客戶標(biāo)志字段等于1或者3。視圖2:View_BuyCustomer供貨客戶視圖列名數(shù)據(jù)類型說明CustomerId數(shù)值型客戶編號CustomerName文本型客戶名稱Address文本型地址Contact文本型聯(lián)系人ContactPhone文本型聯(lián)系電話Memo文本型備注說明條件:客戶標(biāo)志字段等于2或者3。3.4存儲過程設(shè)計a) 庫存盤點(diǎn)存儲過程設(shè)計思路:1、 判斷是否期初盤點(diǎn),期初盤點(diǎn)則根據(jù)已有的入倉數(shù)據(jù)和出倉數(shù)據(jù),計算現(xiàn)庫存數(shù)量,如果沒有入倉數(shù)據(jù)和出倉數(shù)據(jù),則數(shù)量計為0,把結(jié)果數(shù)據(jù)插入盤點(diǎn)信息表,返回成功標(biāo)志,程序結(jié)束;2、 非期初盤點(diǎn),則根據(jù)當(dāng)前時間點(diǎn)找到最近一期的盤點(diǎn)數(shù)據(jù),再
18、根據(jù)從該期盤點(diǎn)時間到當(dāng)前時間點(diǎn)所有的入倉數(shù)據(jù)和出倉數(shù)據(jù),計算現(xiàn)庫存數(shù)量,把結(jié)果數(shù)據(jù)插入盤點(diǎn)信息表,返回成功標(biāo)志,程序結(jié)束;3、 考慮到貨品信息表會不定時更新,盤點(diǎn)表也要以最新的貨品信息表進(jìn)行盤點(diǎn)。b) 實(shí)時庫存情況存儲過程實(shí)時庫存情況存儲過程與庫存盤點(diǎn)存儲過程設(shè)計思路類似,但計算結(jié)果不需寫到數(shù)據(jù)表,直接以數(shù)據(jù)集形式返回。設(shè)計思路:1、 判斷是否已存在盤點(diǎn)數(shù)據(jù),如否則根據(jù)已有的入倉數(shù)據(jù)和出倉數(shù)據(jù),計算現(xiàn)庫存數(shù)量,如果沒有入倉數(shù)據(jù)和出倉數(shù)據(jù),則數(shù)量計為0,返回結(jié)果數(shù)據(jù)集,程序結(jié)束;2、 如已存在盤點(diǎn)數(shù)據(jù),則根據(jù)當(dāng)前時間點(diǎn)找到最近一期的盤點(diǎn)數(shù)據(jù),再根據(jù)從該期盤點(diǎn)時間到當(dāng)前時間點(diǎn)所有的入倉數(shù)據(jù)和出倉數(shù)
19、據(jù),計算現(xiàn)庫存數(shù)量,返回結(jié)果數(shù)據(jù)集,程序結(jié)束;3、 考慮到貨品信息表會不定時更新,盤點(diǎn)表也要以最新的貨品信息表進(jìn)行盤點(diǎn)。c) 查詢庫存異常情況存儲過程查詢庫存異常情況存儲過程是以設(shè)置庫存上下限數(shù)據(jù),對實(shí)時庫存情況進(jìn)行計算,返回低于庫存下限或高于上限的貨品數(shù)據(jù)設(shè)計思路:1、 根據(jù)庫存上下限的數(shù)據(jù),限定計算實(shí)時庫存的貨品范圍;2、 判斷是否已存在盤點(diǎn)數(shù)據(jù),如否則根據(jù)已有的入倉數(shù)據(jù)和出倉數(shù)據(jù),計算現(xiàn)庫存數(shù)量,返回低于庫存下限或高于上限的貨品數(shù)據(jù)集,程序結(jié)束;3、 如已存在盤點(diǎn)數(shù)據(jù),則根據(jù)當(dāng)前時間點(diǎn)找到最近一期的盤點(diǎn)數(shù)據(jù),再根據(jù)從該期盤點(diǎn)時間到當(dāng)前時間點(diǎn)所有的入倉數(shù)據(jù)和出倉數(shù)據(jù),計算現(xiàn)庫存數(shù)量,返回低
20、于庫存下限或高于上限的貨品數(shù)據(jù)集,程序結(jié)束。3.5代碼實(shí)現(xiàn)a) 創(chuàng)建數(shù)據(jù)庫USE masterGOCREATE DATABASE storehouseON ( NAME ='storehouse', FILENAME = 'c:storehouse.mdf', SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 5MB )LOG ON( NAME = 'storehouse_log', FILENAME = 'c:storehouse.ldf', SIZE = 5MB, MAXSIZE = 25MB
21、, FILEGROWTH = 5MB )GOb) 客戶信息表建立CREATE TABLE Customer( CustomerId int IDENTITY(1,1) NOT NULL PRIMARY KEY, CustomerType tinyint NOT NULL DEFAULT(1), CustomerName varchar(60) NOT NULL, Address varchar(180) NOT NULL, Contact varchar(20) NOT NULL, ContactPhone varchar(60) NOT NULL, Memo varchar(800) NUL
22、L)c) 計量單位信息表建立CREATE TABLE Measure(MeasureId int IDENTITY(1,1) NOT NULL PRIMARY KEY,MeasureName varchar(20) NOT NULL,Describe varchar(180) NULL)d) 貨品信息表建立CREATE TABLE Goods(GoodsId int IDENTITY(1,1) NOT NULL PRIMARY KEY,GoodsName varchar(60) NOT NULL,MeasureId int NOT NULL,Describe varchar(180) NULL
23、,Memo varchar(800) NULL,FOREIGN KEY (MeasureId) REFERENCES Measure (MeasureId)e) 庫管人員信息表設(shè)計CREATE TABLE Storeman (StoremanId int IDENTITY(1,1) NOT NULL PRIMARY KEY,LoginName varchar(16) NOT NULL,LoginPassword varchar(8) NOT NULL,Name varchar(20) NOT NULL,UserType tinyint NOT NULL DEFAULT(1),Memo varc
24、har(800) NULL)f) 貨品入倉信息表建立CREATE TABLE EntryInfo (EntryId int IDENTITY(1,1) NOT NULL PRIMARY KEY,GoodsId int NOT NULL,EntryAmount int NOT NULL,EntryDate datetime NOT NULL DEFAULT(getdate(),StoremanId int NOT NULL,CustomerId int NOT NULL,FOREIGN KEY (GoodsId) REFERENCES Goods (GoodsId),FOREIGN KEY (S
25、toremanId) REFERENCES Storeman (StoremanId),FOREIGN KEY (CustomerId) REFERENCES Customer (CustomerId)g) 品出倉信息表建立CREATE TABLE ExportInfo (ExportId int IDENTITY(1,1) NOT NULL PRIMARY KEY,GoodsId int NOT NULL,ExportAmount int NOT NULL,ExportDate datetime NOT NULL DEFAULT(getdate(),StoremanId int NOT NU
26、LL,CustomerId int NOT NULL,FOREIGN KEY (GoodsId) REFERENCES Goods (GoodsId),FOREIGN KEY (StoremanId) REFERENCES Storeman (StoremanId),FOREIGN KEY (CustomerId) REFERENCES Customer (CustomerId)h) 貨品盤點(diǎn)信息表建立CREATE TABLE CheckInfo (CheckId int IDENTITY(1,1) NOT NULL PRIMARY KEY,GoodsId int NOT NULL,Check
27、Amount int NOT NULL,CheckDate datetime NOT NULL DEFAULT(getdate(),StoremanId int NOT NULL,CustomerId int NOT NULL,FOREIGN KEY (GoodsId) REFERENCES Goods (GoodsId),FOREIGN KEY (StoremanId) REFERENCES Storeman (StoremanId),FOREIGN KEY (CustomerId) REFERENCES Customer (CustomerId)i) 庫存上下限信息表建立CREATE TA
28、BLE StorehouseAlert (GoodsId int NOT NULL PRIMARY KEY,UpAlert int NOT NULL,DownAlert int NOT NULL,FOREIGN KEY (GoodsId) REFERENCES Goods (GoodsId)j) 供貨客戶視圖建立CREATE VIEW View_SupplyCustomer ASSelect CustomerId,CustomerName,Address,Contact,ContactPhone,MemoFROM Customer Where CustomerType=1 or Custome
29、rType=3k) 收貨客戶視圖建立CREATE VIEW View_BuyCustomer ASSelect CustomerId,CustomerName,Address,Contact,ContactPhone,MemoFROM Customer Where CustomerType=2 or CustomerType=3l) 庫存盤點(diǎn)存儲過程建立CREATE PROCEDURE Procedure_storecheck storemanid intASDeclare lastcheckdate datetime Select lastcheckdate=max(Checkdate) f
30、rom CheckInfoIf ROWCOUNT =0 Insert into CheckInfo(GoodsId,CheckAmount,CheckDate,StoremanId) Select Goodsid,CheckAmount=(select isnull(sum(EntryAmount),0) from EntryInfo where GoodsId=a.GoodsId)-(select isnull(sum(ExportAmount),0) from ExportInfo where GoodsId=a.GoodsId),getdate(),storemanid from Goo
31、ds aElse Insert into CheckInfo(GoodsId,CheckAmount,CheckDate,StoremanId) Select Goodsid,CheckAmount=(select isnull(CheckAmount,0) from Checkinfo where GoodsId=a.GoodsId and Checkdate=lastcheckdate)+(select isnull(sum(EntryAmount),0) from EntryInfo where GoodsId=a.GoodsId and EntryDate>=lastcheckd
32、ate)-(select isnull(sum(ExportAmount),0) from ExportInfowhere GoodsId=a.GoodsId and ExportDate>=lastcheckdate),getdate(),storemanid from Goods am) 實(shí)時庫存情況存儲過程建立CREATE PROCEDURE Procedure_storereal ASDeclare lastcheckdate datetime Select lastcheckdate=max(Checkdate) from CheckInfoIf ROWCOUNT =0 Sel
33、ect a.GoodsName,b.MeasureName,CheckAmount=(select isnull(sum(EntryAmount),0) from EntryInfo where GoodsId=a.GoodsId)-(select isnull(sum(ExportAmount),0) from ExportInfo where GoodsId=a.GoodsId) from Goods a,Measure b where a.MeasureId=b.MeasureIdElseSelect a.GoodsName,b.MeasureName,CheckAmount=(sele
34、ct isnull(CheckAmount,0) from Checkinfo where GoodsId=a.GoodsId and Checkdate=lastcheckdate)+(select isnull(sum(EntryAmount),0) from EntryInfo where GoodsId=a.GoodsId and EntryDate>=lastcheckdate)-(select isnull(sum(ExportAmount),0) from ExportInfo where GoodsId=a.GoodsId and ExportDate>=lastc
35、heckdate) from Goods a,Measure b where a.MeasureId=b.MeasureIdn) 查詢庫存異常情況存儲過程建立CREATE PROCEDURE Procedure_storealert ASCreate TABLE #1(Goodsid int,CheckAmount int,UpAlert int,DownAlert int)Declare lastcheckdate datetime Select lastcheckdate=max(Checkdate) from CheckInfoIf ROWCOUNT =0 Insert into #1(
36、Goodsid,CheckAmount,UpAlert,DownAlert) Select a.Goodsid,CheckAmount=(select isnull(sum(EntryAmount),0) from EntryInfo where GoodsId=a.GoodsId)-(select isnull(sum(ExportAmount),0) from ExportInfo where GoodsIs=a.GoodsId),b.UpAlert,b.DownAlert from Goods a,StorehouseAlert b where a.GoodsId=b.GoodsId E
37、lseInsert into #1(Goodsid,CheckAmount,UpAlert,DownAlert) Select a.Goodsid,CheckAmount=(select isnull(CheckAmount,0) from Checkinfo where GoodsId=a.GoodsId and Checkdate=lastcheckdate)+(select isnull(sum(EntryAmount),0) from EntryInfo where GoodsId=a.GoodsId and EntryDate>=lastcheckdate)-(select i
38、snull(sum(ExportAmount),0) from ExportInfo where GoodsId=a.GoodsId and ExportDate>=lastcheckdate) ,b.UpAlert,b.DownAlert from Goods a,StorehouseAlert b where a.GoodsId=b.GoodsIdSelect b.GoodsName,c.MeasureName,a.UpAlert,a.DownAlert,a.CheckAlert from #1 a,Goods b, Measure c where a.GoodsId=b.Goods
39、Id and b.MeasureId=c.MeasureId and (a.CheckAmount>a.Upalert or a.CheckAmount <a.DownAlert)第四章系統(tǒng)初始化a) 將客戶信息加入到Customer表Insert into Customer(customertype,customername,address,contact,contactphone) Values(1,'客戶1','客戶地址1','客戶聯(lián)系人1','客戶聯(lián)系電話1')Insert into Customer(cust
40、omertype,customername,address,contact,contactphone) Values(1,'客戶2','客戶地址2','客戶聯(lián)系人2','客戶聯(lián)系電話2')Insert into Customer(customertype,customername,address,contact,contactphone) Values(2,'客戶3','客戶地址3','客戶聯(lián)系人3','客戶聯(lián)系電話3')Insert into Customer(cu
41、stomertype,customername,address,contact,contactphone) Values(3,'客戶4','客戶地址4','客戶聯(lián)系人4','客戶聯(lián)系電話4')b) 將計量信息加入Measure表Insert into Measure(measurename,describe) values('箱','計量單位描述1')Insert into Measure(measurename,describe) values('包','計量單位描述2
42、39;)c) 將貨品信息加入Goods表Insert into Goods(goodsname,measureid,describe) values('貨品1',1, '貨品描述1')Insert into Goods(goodsname,measureid,describe) values('貨品2',1, '貨品描述2')Insert into Goods(goodsname,measureid,describe) values('貨品3',2, '貨品描述3')d) 將庫管人員信息加入Stor
43、eman表Insert into Storeman(loginname,loginpassword,name,usertype) values('ceshi1', '123', '測試1',1)Insert into Storeman(loginname,loginpassword,name,usertype) values('ceshi2', '123', '測試2',2)e) 添加貨品入倉記錄Insert into EntryInfo(goodsid,entryamount,entrydate,
44、storemanid,customerid) values(1,10, '2011-1-1',1,1)Insert into EntryInfo(goodsid,entryamount,entrydate,storemanid,customerid) values(2,8, '2011-1-1',1,1)Insert into EntryInfo(goodsid,entryamount,entrydate,storemanid,customerid) values(1,10, '2011-1-2',1,1)Insert into EntryInf
45、o(goodsid,entryamount,entrydate,storemanid,customerid) values(1,2, '2011-1-3',1,1)Insert into EntryInfo(goodsid,entryamount,entrydate,storemanid,customerid) values(2,5, '2011-1-4',1,1)f) 添加貨品出倉記錄Insert into ExportInfo(goodsid,exportamount,exportdate,storemanid,customerid) values(1,2,
46、'2011-1-2',1,3)Insert into ExportInfo(goodsid,exportamount,exportdate,storemanid,customerid) values(1,3, '2011-1-2',1,4)Insert into ExportInfo(goodsid,exportamount,exportdate,storemanid,customerid) values(2,6, '2011-1-2',1,4)Insert into ExportInfo(goodsid,exportamount,exportd
47、ate,storemanid,customerid) values(2,3, '2011-1-5',1,3)g) 添加庫存上下限記錄Insert into StorehouseAlert(goodsid,upalert,downalert) values(1,100,5)Insert into StorehouseAlert(goodsid,upalert,downalert) values(2,100,5)a) 系統(tǒng)連接(使用JDBD Driver):Import java.sql.*;Class.forName(“com.microsoft.jdbc.sqlserver.S
48、QLServerDriver”);tryClass.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);catch(ClassNotFoundException e)System.out.println(“Driver Not Found”);b) 查詢功能關(guān)鍵代碼:<% page contentType="text/html;charset=utf-8"%> <% page import="java.sql.*"%> <html> <body>
49、<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver:/192.168.1.11:1433;DatabaseName=storehouse" String user="sa" String password="" Connection conn= DriverManager.getConnection(url,user,passwor
50、d); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); /String sql="select * from customer" ResultSet rs=stmt.executeQuery(sql); while(rs.next() %> 第一行:<%=rs.getString(1)%> /第二行:<%=rs.getString(2)%> <%> /<%out.print(&quo
51、t;查詢完畢");%> <%rs.close(); stmt.close(); conn.close(); %> </body> </html>第五章系統(tǒng)界面演示登陸入口:進(jìn)入倉庫管理選項卡:單表查詢:表customer的SQL Server查詢:對應(yīng)的系統(tǒng)界面查詢:各表不一一枚舉視圖查詢:視圖View_SupplyCustomer的SQL Server查詢:對應(yīng)的系統(tǒng)界面查詢:視圖View_BuyCustomer的SQL Server查詢:對應(yīng)的系統(tǒng)界面查詢:多表查詢:貨品名稱為“貨品1”的入庫記錄的SQL Server查詢:對應(yīng)的系統(tǒng)界面查詢:實(shí)時庫存的SQL Server查詢:對應(yīng)的系統(tǒng)界面查詢:庫存異常報警情況的SQL Server查詢:對應(yīng)的系統(tǒng)界面查詢:界面部分我采用了CROWN(感謝CROWN)的模板,其中包括一些CSS樣式和簡單的JSP腳本,同時也對其進(jìn)行了修改和擴(kuò)充,使它和“虛擬商店”更加緊密地結(jié)合在一起。由于功能并不完善(訂單部分如何實(shí)施有待做市場調(diào)研),因此對應(yīng)的系統(tǒng)部分還不能達(dá)到應(yīng)用的級別,這部分我會在接下來的時間里完成(暑期完成市場調(diào)研)。力求做到時效性、獨(dú)特性、針對性,并對界面進(jìn)行進(jìn)一步美化,以達(dá)到清新、直觀的效果。第六章總結(jié)經(jīng)歷了數(shù)周的學(xué)習(xí)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版六年級語文上冊習(xí)作《多彩的活動》精美課件
- 2024年阿克蘇旅客運(yùn)輸從業(yè)資格證考試題庫
- 2024年許昌辦理客運(yùn)從業(yè)資格證理論考試題
- 2024年湖南客運(yùn)資格證考試試題及答案
- 2024年蕪湖客運(yùn)模擬考試
- 2024年烏蘭察布客運(yùn)從業(yè)資格證考試答案
- 2024人工智能研發(fā)與許可合同
- 2024年城市公共交通服務(wù)合同詳解
- 中學(xué)科技節(jié)活動方案范文
- 鉻污染地下水治理現(xiàn)狀
- CPK與CP詳細(xì)講解資料(課堂PPT)
- 光動力治療在氣道腫瘤中的臨床應(yīng)用課件
- 小學(xué)語文人教三年級上冊 群文閱讀《奇妙的中心句》
- 大數(shù)據(jù)和人工智能知識考試題庫600題(含答案)
- 2023年上海機(jī)場集團(tuán)有限公司校園招聘筆試題庫及答案解析
- 鏡頭的角度和方位課件
- 污水處理常用藥劑簡介知識講解課件
- 五年級上冊英語課件-Unit 1《My future》第1課時牛津上海版(三起) (共28張PPT)
- 光交接箱施工規(guī)范方案
- 氣溫和降水學(xué)案
- 普及人民代表大會制度知識競賽試題庫(1000題和答案)
評論
0/150
提交評論