倉庫管理系統實驗報告_第1頁
倉庫管理系統實驗報告_第2頁
倉庫管理系統實驗報告_第3頁
倉庫管理系統實驗報告_第4頁
免費預覽已結束,剩余19頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫設計與開發實驗報告食品倉庫管理系統姓名:姜雪第一章需求分析1.1 項目概述由于食品倉庫中貨品種類龐大, 數量眾多,但是靠手寫這種方式來記錄倉庫中食品的情況顯然是遠遠不夠的, 因此就需要一個自動便捷的倉庫管理系統。 介于實際情況,倉庫入庫和出庫以及庫存這三種之間有著密切關系, 因此可以考慮使用觸發器來實現。另外由于實際生活中的情況, 貨品經常需要大量的進行入庫和出庫操作, 因此很有必要實現批量的入庫出庫操作, 這就很符合游標的特點: 完成批量作業, 所以在入庫和出庫表中定義游標來進行對庫存表的批量修改就很有意義。而本系統選擇用 WPF 也是基于現在的趨勢, WPF 相比 windows 的

2、界面美觀簡潔很符合用戶的需求。并且也是比較新的應用程序,符合大眾審美。1.2 功能模塊倉庫管理系統需要實現操作員、產品管理、產品入庫管理、產品出庫管理、供應商管理、庫房管理、操作員查詢、出貨部門管理模塊的功能,具體功能如下圖所示:倉庫管理系統功能模塊操作員模塊產品管理模塊產品入庫管理模塊產品出庫管理模塊產品類型管理模塊供應商管理模塊庫房管理模塊操作員查詢模塊出貨部門管理模塊操操產產入入出出產產供庫庫出出供房房貨作作品品庫庫庫庫品品應貨產產應基基部部員員基基產產類類商商本本門基本本品品品品型型增門登查信信基基陸本信信記記記記查增加息息錄錄詢息息本本信錄錄詢加查查添增查增信信息增查詢加加詢詢加息息

3、修加詢查改增詢加1.3 用例圖產品管理出入庫管理出貨部門管理供應商管理管理員操作員查詢庫房管理第二章數據庫設計2.1 E-R 圖設計2.2 數據庫表設計2.2.1 產品庫存表 jiangxue_storage表結構字段數據結構長度是否允許空備注產品編號 sto_idChar10否主鍵產品名稱 sto_nameChar20是產品庫存 sto_numberInt否產品單位 sto_unitChar5是產品單價 sto_priceFloat是產品類型編號 sto_typeIdChar10否外鍵產品庫房編號 sto_houseIdChar10否外鍵產品出產日期 sto_proTimeDate是產品保質

4、日期 sto_lifeChar10是產品凈含量 sto_weightChar10是2.2.2 產品類型 jiangxue_type表結構字段數據結構長度是否允許空備注類型編號 type_idChar10否主鍵類型名稱 type_nameChar10是2.2.3 入庫表 jiangxue_inStorage表結構字段數據結構長度是否允許空備注入庫編號 in_idChar10否主鍵入庫日期 in_timeDatetime是入庫產品編號 in_stoIdChar10否外鍵入庫數量 in_stonumberInt否產品類型編號 in_typeIdChar10否外鍵供應商編號 in_supIdChar1

5、0否外鍵操作員編號 in_opeIdChar10否外鍵入庫庫房編號 in_houseIdChar10否外鍵備注 in_commentChar50是2.2.4 出庫表 jiangxue_outStorage表結構字段數據結構長度是否允許空備注出庫編號 out_idChar10否主鍵出庫日期 out_timeDatetime是出庫產品編號 out_stoIdChar10否外鍵出庫數量 out_stonumberInt否產品類型編號 out_typeIdChar10否外鍵領取部門編號 out_depIdChar10否外鍵出庫操作員 out_opeIdChar10否外鍵備注 out_commentCh

6、ar50是2.2.5 供應商 jangxue_supplier表結構字段數據結構長度是否允許空備注供應商編號 sup_idChar10否主鍵供應商名稱 sup_nameChar20是供應商電話 sup_phoneChar20是供應商地址 sup_addressChar30是供應商郵件 sup_emailChar20是供應商郵編 sup_postcadeChar10是出貨部門 jiangxue_department表結構字段數據結構長度是否允許空備注部門編號 dep_idChar10否主鍵部門名稱 dep_nameChar10是2.2.7 操作員 jiangxue_operator表結構字段數據

7、結構長度是否允許空備注操作員編號 ope_idChar10否主鍵操作員姓名 ope_nameChar10是操作員性別 ope_sexChar5是操作員電話 ope_phoneChar20是操作員職位 ope_positionChar10是操作員身份證號 ope_idcardChar30是2.2.8 庫房 jiangxue_storeHouse表結構字段數據結構長度是否允許空備注庫房編號 stohouse_idChar10否主鍵庫房面積 stohouse_areaFloat是管理員 stohouse_managerChar10否外鍵2.2.9 用戶 jiangxue_user表結構字段數據結構長

8、度是否允許空備注用戶名 usernameChar10否主鍵密碼 passwordChar10否操作員編號 ope_idChar10否外鍵第三章數據庫程序設計3.1 數據庫及表的定義3.2 創建索引 (加快查詢速度 )其他表類似。3.3 創建存儲過程帶參數的存儲過程描述:根據產品編號返回對應的產品信息usejiangxue_storageIFEXISTS( SELECT name FROM sysobjectsWHEREname = 'jiangxue_someStorage'DROP PROCEDUREjiangxue_someStoragegocreateprocedurej

9、iangxue_someStorageidvarchar( 10 )asselect*fromjiangxue_storagewheresto_id=idAND type= 'P')帶 output 參數的存儲過程描述:返回某產品近期入庫的總數量IFEXISTS( SELECT nameFROM sysobjectsWHEREname = 'jiangxue_countInStorage'AND type = 'P' )DROP PROCEDUREjiangxue_countInStoragegocreateprocedurejiangxue_c

10、ountInStorageidvarchar( 10),name varchar( 20)out ,unitvarchar( 5) out ,totalintOUTPUTasselecttotal=SUM( in_stonumber),name=jiangxue_storage. sto_name ,unit=jiangxue_storage. sto_unitfromjiangxue_inStorage, jiangxue_storagewherein_stoId=id andjiangxue_storage. sto_id=jiangxue_inStorage. in_stoIdgroup

11、byjiangxue_inStorage. in_stoId, jiangxue_storage. sto_name ,jiangxue_storage. sto_unit執行:declarename varchar ( 20 ),unitvarchar ( 5),total intexecjiangxue_countInStorage1, nameout, unit out , totaloutputprintname +' 的近期入庫總數量 :' +rtrim ( total )+ unit3.3.3 描述:增加一條產品記錄createproceduredbo. jiang

12、xue_insertStorageidvarchar( 10 ),name varchar( 20 ),numberint,unitvarchar( 5),wpricefloat,typeidvarchar( 10 ),houseidvarchar( 10 ),protimedate ,lifevarchar( 10 ),weightvarchar( 10 )asinsertintojiangxue_storagevalues ( id, name, number, unit , wprice , typeid , housei d, protime , life , weight )描述:更

13、新商品信息createproceduredbo. jiangxue_updateStorageidvarchar( 10 ),name varchar( 20 ),numberint,unitvarchar( 5),wpricefloat,typeidvarchar( 10 ),houseidvarchar( 10 )asupdatejiangxue_storagesetsto_name=name, sto_number=number, sto_unit=unit ,sto_wprice=wprice , sto_typeId=typeid, sto_houseId=houseidwheres

14、to_id=id3.4 觸發器設計觸發器描述:當增加出庫記錄后,庫存表jiangxue_storage中對應的產品庫存數量sto_number便減去其出庫數量 out_stonumbercreatetriggerupdateOutStorageonjiangxue_outStorageafterinsertasupdatejiangxue_storagesetsto_number=sto_number-inserted. out_stonumberfromjiangxue_storage, insertedwherejiangxue_storage. sto_id=inserted. out_

15、stoId描述:當增加入庫記錄后,庫存表jiangxue_storage中對應的產品庫存數量sto_number便增加其入庫數量 in_stonumberCreate triggerdbo. updateInStorageondbo. jiangxue_inStorageafterinsertasupdatejiangxue_storagesetsto_number=sto_numberinserted. in_stonumberfromjiangxue_storage, insertedwherejiangxue_storage. sto_id=inserted. in_stoId+觸發器描

16、述:向庫存表 jiangxue_storage中插入一條數據后, 顯示全部產品的記錄,便于確認信息createtriggerinsertStorageonjiangxue_storageforupdateasselect*frominserted3.5 游標應用描述:將出庫表中產品出庫數量更新到庫存表中對應編號的產品數量。結果:描述:將入庫表中產品如庫數量更新到庫存表中對應編號的產品數量。第四章用戶交互界面4.1 用戶登錄界面輸入用戶名及密碼,驗證輸入是否正確,輸入錯誤則彈出錯誤的對話框。正確則跳到主界面。4.2 主界面顯示當前日期,及登錄用戶名。4.3 產品管理查詢、修改、增加產品信息4.4

17、 產品類型管理查詢、修改、增加產品類型4.5 入庫操作在表格內輸入入庫信息, 批量填寫入庫信息后, 點擊增加入庫信息按鈕進行批量入庫。4.6 出庫操作在表格內輸入出庫信息, 批量填寫出庫信息后, 點擊增加出庫信息按鈕進行批量出庫。4.7 供應商管理查詢、增加、刪除、修改供應商信息4.8 出貨部門管理查詢所有部門信息或某部門信息、增加、刪除及修改部門4.9 操作員查詢查詢操作員信息,不能進行修改4.10 庫房管理查詢全部倉庫信息、通過某倉庫號查詢該倉庫信息,刪除及修改倉庫信息。第五章實驗中遇到的問題及總結1.數據庫設計(1)設計表時,沒有從實際角度出發,剛開始入庫表的屬性中包含了產品的名稱、及產

18、品的其他屬性, 造成了嚴重的冗余, 未考慮到一般倉庫內錄入的是庫存內已有的產品。如果出現新產品,也應該先從產品表中添加,再進行入庫操作。如果屬性類型、允許 null 值及移動屬性順序時候,在數據表設計界面中直接修改會出現如下界面:只能用 sql 語句進行修改。最后通過查詢資料得點擊工具 ->選項,彈出如下圖所示對話框,去掉勾選“阻止保存要求重新創建表的更改” 。1. 創建存儲過程在入庫表中創建帶返回參數的存儲過程時, 出現如下圖所示錯誤, 本意選出對應編號的商品數據,輸出商品名稱及近期入庫的總數量。需要設置一個變量 name進行賦值即可。加上 rtrim 將 int 轉化成 varcha

19、r 型2. 觸發器設計設計了一個 insert 觸發器,當入庫操作的產品不在庫存表內,則在庫存表內增加該商品的信息。驗收的時候發現自己表設計上冗余過大。同時在 C#編程時也出現了錯誤, 疑問:不知道為什么會出錯?USE jiangxue_storageIFEXISTS( SELECTnameFROM sysobjectsWHEREname='insertStorage'AND type='TR' )DROP TRIGGER insertStorageGOcreateTriggerinsertStorageonjiangxue_inStorageforinsert

20、asif( selectCOUNT(*)frominsertedi , jiangxue_storages wherei . in_stoId=s . sto_id)= 0)begindeclareid varchar(10),namevarchar(20),number int, unitvarchar( 5),pricefloat,typeidvarchar( 10 ), houseidvarchar(10),protimedate , lifevarchar( 10),weight varchar( 10)setid =( selectin_stoIdfrominsertediwhere

21、i . in_stoIdnotin( selectsto_idfromjiangxue_storage)setname=( selectin_stonamefrominsertedwherein_stoId =id )setnumber=( selectin_stonumberfrominsertedwherein_stoId =id )setunit =( selectin_stounitfrominsertedwherein_stoId =id )setprice=( selectin_stopricefrominsertedwherein_stoId =id )settypeid=( selectin_typeIdfrominsertedwherein_stoId=id )sethouseid =( selectin_houseIdfrominsertedwherein_stoId =id )setprotime =( selectin_proTimefrominsertedwherein_stoId =id )setlife=( selectin_lifefrominsertedwherein_stoId=id )setweight =( selectin_weightfro

溫馨提示

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

評論

0/150

提交評論