




免費預覽已結(jié)束,剩余17頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
上海電力學院 數(shù)據(jù)庫設(shè)計課程設(shè)計 題題 目目 中草藥銷售管理系統(tǒng)中草藥銷售管理系統(tǒng) 學生姓名 學生姓名 李辰源李辰源 學學 號 號 2013179120131791 班班 級 級 201054201054 院院 系 系 計算機科學與技術(shù)學院計算機科學與技術(shù)學院 專業(yè)年級 專業(yè)年級 計算機科學與技術(shù) 卓越 計算機科學與技術(shù) 卓越 級級 20152015年年 6 6 月月 1010 日日 目錄 一 需求分析 1 1 問題描述 1 2 系統(tǒng)性要求 1 3 完整性規(guī)則 1 4 安全性規(guī)則 1 二 概念結(jié)構(gòu)設(shè)計 2 三 邏輯結(jié)構(gòu)設(shè)計 4 1 模式設(shè)計 4 2 子模式設(shè)計 6 I 視圖 6 II 查詢信息 6 四 數(shù)據(jù)庫的物理設(shè)計 6 五 數(shù)據(jù)庫設(shè)計實現(xiàn)及運行 7 1 數(shù)據(jù)庫的創(chuàng)建 7 2 數(shù)據(jù)表的創(chuàng)建 舉例 7 3 視圖的創(chuàng)建 僅需給出自己設(shè)計模塊中所用的視圖 7 4 存儲過程的定義實現(xiàn) 僅需給出自己設(shè)計模塊中所用的 8 5 觸發(fā)器的定義實現(xiàn) 僅需給出自己設(shè)計模塊中所用的 10 1 插入數(shù)據(jù)操作 11 2 插入數(shù)據(jù)操作 14 六 系統(tǒng)詳細設(shè)計及實現(xiàn) 14 1 系統(tǒng)功能模塊說明 14 2 每個模塊的關(guān)鍵語句及關(guān)鍵技術(shù)說明 15 I 倉庫管理 15 II 銷售管理 15 七 附錄 部分代碼 16 八 心得體會 19 1 一 需求分析 1 1 問題描述 問題描述 中草藥銷售管理系統(tǒng)主要面向于小型商戶 實現(xiàn)管理層 門面銷售 層人員的權(quán)限分離 通過管理倉庫 銷售記錄等數(shù)據(jù)統(tǒng)計并顯示各 類信息 2 2 系統(tǒng)性要求 系統(tǒng)性要求 i 信息錄入 進貨 銷售等環(huán)節(jié) 都需要往數(shù)據(jù)庫中添加信息 ii 信息修改 當數(shù)據(jù)庫中信息發(fā)生了改變 需要及時修改信息 iii 信息查詢 可以按條件查詢藥品基本信息 進貨信息 銷售信息 當前 倉庫中的庫存情況等 并盡可能實現(xiàn)多條件組合查詢 iv 統(tǒng)計 匯總各藥品在規(guī)定時間段內(nèi)的進貨總量 銷售總量等 v 將近過期的商品 庫存量較少的商品請給出提醒 vi 用戶權(quán)限的限定 超級用戶 可以使用本系統(tǒng)提供的任何功能 管理人 員 對藥品的進貨 定價等進行管理 銷售員工用戶 可以記錄和查詢 貨物的銷售情況 但不可以登記商品的入庫操作 3 3 完整性規(guī)則 完整性規(guī)則 a 設(shè)定缺省約束 如進貨日期為系統(tǒng)當前日期 b 設(shè)置非空約束 如藥品名稱 c 實施 CHECK 約束 如進貨單價 進貨數(shù)量應(yīng)大于 0 等 d 實施 CHECK 約束 約束藥品類別為 中藥 草藥 中成藥 e 設(shè)計觸發(fā)器 實現(xiàn)庫存信息的自動更新 4 4 安全性規(guī)則 安全性規(guī)則 a 不同用戶的權(quán)限界面 通過不同的登陸賬戶區(qū)分賬戶并開啟不同的界面 b 分離最低權(quán)限用戶同時擁有倉管權(quán)限和銷售權(quán)限的可能性 c 程序代碼中界面代碼和數(shù)據(jù)庫訪問代碼分開 加強安全性 2 二 概念結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫 E R 圖 庫存信息 進貨信息 商品信息 銷售記錄 進庫 出庫 采購 倉庫號進貨編號庫存數(shù)量 商品類別商品名稱產(chǎn)日 商品編號 進貨編號 商品編號 進貨日期有效期進貨單價 數(shù)量 生產(chǎn)日期 倉位號銷售單價銷售量柜臺號 銷售人工 號 銷售編號 銷售日期 n n 1 1 1 n 3 實體轉(zhuǎn)化為關(guān)系模式 銷售記錄 銷售編號 倉位號 銷售單價 銷售量 柜臺號 銷售人工號 銷售日期 庫存信息 倉位號 進貨編號 庫存數(shù)量 進貨信息 進貨編號 商品編號 生產(chǎn)日期 進貨日期 有效期 進貨單價 進貨數(shù) 量 商品信息 商品編號 商品類別 商品名稱 產(chǎn)地 采購 采購編號 商品編號 生產(chǎn)商 采購價格 權(quán)限層次 登陸頁面 經(jīng)理超級用戶銷售員 一級權(quán)限超級權(quán)限二級權(quán)限 1 倉庫管理 2 銷售管理 3 信息查詢 4 逼倉巡視 1 銷售管理 2 信息查詢 3 逼倉巡視 1 倉庫管理 2 銷售管理 3 信息查詢 4 季度查看 5 逼倉巡視 權(quán)限等級 超級權(quán)限為超級用戶所有 面向?qū)ο鬄槠髽I(yè)的最高領(lǐng)導人 可使用所有項目 查 看各項資料 一級權(quán)限為經(jīng)理用戶所用 面向?qū)ο鬄槠髽I(yè)管理層 除查看企業(yè)季度營銷外 可 使用其他生育功能 二級權(quán)限為銷售員所用 面向?qū)ο鬄槠髽I(yè)營銷最前方的工作人員 權(quán)限較低 功能模塊圖 4 倉庫管理銷售管理信息查詢季度查詢 1 查詢在庫藥物 2 倉儲記錄 3 進 出貨 4 查詢進貨記錄 1 檢閱銷售記錄 2 增加新銷售記錄 查詢進貨 銷售 庫 存 1 自定義時間跨度 查詢 2 查詢進貨記錄及 銷售記錄 逼倉巡視 1 全權(quán)限通用 2 檢閱符合條件的 逼倉物資 功能模塊 倉庫管理 查詢在庫藥物 倉儲記錄等一系列倉庫記錄 控制進 出貨 查詢記錄 銷售記錄 查詢搜友銷售記錄 可以添加新的銷售記錄 并自動與倉庫記錄同步 信息查詢 通過指定藥物類別 名稱等一系列信息 查看相應(yīng)的記錄 季度查詢 從整體角度觀察某段時間的進出貨情況 幫助企業(yè)制定戰(zhàn)略 逼倉巡視 查詢所有記錄 確認其中逼倉 逼期藥物 三 邏輯結(jié)構(gòu)設(shè)計 1 1 模式設(shè)計 模式設(shè)計 銷售記錄 銷售編號 倉位號 銷售單價 銷售量 柜臺號 銷售人工號 銷售日期 庫存信息 倉位號 進貨編號 庫存數(shù)量 進貨信息 進貨編號 商品編號 生產(chǎn)日期 進貨日期 有效期 進貨單價 進貨數(shù) 量 商品信息 5 商品編號 商品類別 商品名稱 產(chǎn)地 采購 采購編號 商品編號 生產(chǎn)商 采購價格 Item 藥品信息 字段名類型大小是否 可為空 備注 藥品編號Int否primary key 藥品類別Varchar20否Check 約束 藥品名稱varchar20否 產(chǎn)地varchar20否 PutIn 進貨信息 字段名類型大小是否 可為空 備注 進貨編號Int否primary key 藥品編號Int否Foreignkey 生產(chǎn)日期date否 進貨日期date否缺省默認值 當天日期 有效期date否 進貨單價Int否 進貨數(shù)量Int否 Sale 銷售信息 字段名類型大小是否 可為空 備注 銷售編號Int否primary key 倉位號Int否Foreignkey 銷售單價Int否 銷售數(shù)量Int否 柜臺號Int否 銷售人工號Int否 銷售日期Date否缺省默認值 當天日期 Warehouse 倉儲信息 字段名類型大小是否 可為空 備注 6 倉位號Int否primary key 進貨編號Int否Foreignkey 庫存數(shù)量Int否 Item 采購 字段名類型大小是否 可為空 備注 采購編號Int否primary key 藥品名稱Varchar20否Foreignkey 采購價格Int否 生產(chǎn)商varchar20否 采購數(shù)量Int否 2 2 子模式設(shè)計 子模式設(shè)計 I 視圖 視圖 逼倉情況 進貨編號 藥品名稱 進貨單價 進貨數(shù)量 有效期 庫存數(shù)量 倉儲情況 倉位號 藥品編號 進貨編號 藥品類別 藥品名稱 進貨日期 有 效期 庫存數(shù)量 產(chǎn)地 進貨情況 進貨編號 藥品編號 藥品類別 藥品名稱 倉位號 進貨日期 有 效期 進貨數(shù)量 產(chǎn)地 進貨單價 銷售情況 銷售編號 藥品編號 柜臺號 銷售人工號 藥品名稱 銷售單價 進貨數(shù)量 銷售數(shù)量 庫存數(shù)量 藥品類別 倉位號 銷售日期 選項卡專用 藥品類別 藥品名稱 產(chǎn)地 庫存數(shù)量 生產(chǎn)日期 進貨日期 有效期 II 查詢信息 查詢信息 A 查詢進貨信息 進貨編號 藥品編號 藥品類型 藥品數(shù)量 進貨日期 有 效期 生產(chǎn)日期 B 查詢藥品信息 藥品編號 藥品數(shù)量 藥品名字 生產(chǎn)日期 有效期 產(chǎn)地 C 查詢銷售信息 進貨編號 藥品編號 進貨單價 銷售數(shù)量 進貨日期 D 庫存信息查詢 藥品編號 庫存數(shù)量 有效期 生產(chǎn)日期 四 數(shù)據(jù)庫的物理設(shè)計 為了提高在表中搜索元組的速度 在實際實現(xiàn)的時候應(yīng)該基于某些屬性建立索引 給 7 出所建立的索引 包括按哪些表中哪些屬性按升序還是降序來創(chuàng)建索引及相應(yīng)的T SQL的 創(chuàng)建語句 Create index index Me on Medicine 藥品編號 Create index index kucun on Warehouse 倉位號 五 數(shù)據(jù)庫設(shè)計實現(xiàn)及運行 1 1 數(shù)據(jù)庫的創(chuàng)建 數(shù)據(jù)庫的創(chuàng)建 T SQL 語句 create database Medicine name Medicine data filename D Medicine data mdf size 5mb maxsize 100mb filegrowth 15 2 2 數(shù)據(jù)表的創(chuàng)建 舉例 數(shù)據(jù)表的創(chuàng)建 舉例 T SQL 語句 說明 若有完整性約束的一方面可以創(chuàng)建時同時實現(xiàn) 按需求及自行設(shè)計模塊中所實 現(xiàn)的情況 在該部分對完整性約束加以實現(xiàn) drop table Sale create table Sale 銷售編號 int identity 1 1 primary key 倉位號 int not null 銷售單價 int not null 銷售量 int not null 柜臺號 int not null 銷售人工號 int not null 8 銷售日期 date not null 3 3 視圖的創(chuàng)建 僅需給出自己設(shè)計模塊中所用的視圖 視圖的創(chuàng)建 僅需給出自己設(shè)計模塊中所用的視圖 T SQL 語句 Create view 倉儲情況 As SELECT TOP 100 PERCENT dbo PutIn 進貨編號 dbo Item 藥品名稱 dbo PutIn 進 貨單價 dbo PutIn 進貨數(shù)量 dbo PutIn 有效期 dbo Warehouse 庫存數(shù)量 FROM dbo Item INNER JOIN dbo PutIn ON dbo Item 藥品編號 dbo PutIn 藥品編號 INNER JOIN dbo Warehouse ON dbo PutIn 進貨編號 dbo Warehouse 進貨編號 WHERE DATEADD yy 1 dbo PutIn 有效期 GETDATE OR dbo Warehouse 庫存數(shù)量 數(shù)量 9 BEGIN update Warehouse set 庫存數(shù)量 select 庫存數(shù)量 from Warehouse where 倉位 號 倉位號 數(shù)量 where 倉位號 倉位號 END else BEGIN return 2 END END else BEGIN return 3 END 在宿主語言中調(diào)用存儲過程代碼段 粘貼 public void OutW int t1 int t2 出貨 try Class forName driverName Connection dbConn DriverManager getConnection dbURL userName userPwd CallableStatement cmd dbConn prepareCall call Out cmd setInt 1 t1 cmd setInt 2 t2 cmd execute cmd close catch Exception e e printStackTrace javax swing JOptionPane showMessageDialog null 無法鏈接數(shù)據(jù)庫 測試結(jié)果粘貼 此處舉例的存儲過程為倉庫出貨過程 10 5 5 觸發(fā)器的定義實現(xiàn) 僅需給出自己設(shè)計模塊中所用的 觸發(fā)器的定義實現(xiàn) 僅需給出自己設(shè)計模塊中所用的 T SQL 語句 USE Medicine GO Object Trigger dbo UpIn Script Date 2015 6 11 12 32 32 SET ANSI NULLS ON 11 GO SET QUOTED IDENTIFIER ON GO ALTER TRIGGER dbo UpIn ON dbo PutIn FOR Insert AS declare 倉位號 INT declare 進貨編號 INT declare 庫存數(shù)量 INT select 進貨編號 進貨編號 from INSERTED select 庫存數(shù)量 進貨數(shù)量 from INSERTED select 倉位號 1000 RAND begin insert into Warehouse values 倉位號 進貨編號 庫存數(shù)量 END 測試結(jié)果 該觸發(fā)器作用于進貨記錄表 作用是當出現(xiàn)新插入行為時 將相應(yīng)信息插入庫存 表 1 插入數(shù)據(jù)操作 插入數(shù)據(jù)操作 insert into PutIn values t1 t2 t3 t4 t5 t6 t7 每個功能模塊描述方法如下 功能界面 粘貼 12 功能界面簡單描述 使用進貨界面時 按信息填入記錄按確定即可 T SQL 語句與宿主語言嵌套使用代碼段 粘貼 Fin1 addActionListener new ActionListener 進貨記錄 Override public void actionPerformed ActionEvent e try String te1 year getSelectedItem toString te2 month getSelectedIte m toString String te3 year2 getSelectedItem toString te4 month2 getSelectedI tem toString te1 te1 te2 1 te2 te3 te4 1 Welcome5 setVisible false 13 String cols 倉位號 進貨編號 藥 品編號 藥品名稱 進貨日期 有效期 進貨數(shù)量 rows DW Wym te1 te2 DefaultTableModel dtm new DefaultTableModel rows cols yitable setModel dtm yitable1 setVisible true catch Exception e1 e1 printStackTrace System out println 輸入錯誤 javax swing JOptionPane showMessageDialog null 輸入有誤 請重新輸入 測試結(jié)果粘貼 14 2 插入數(shù)據(jù)操作 插入數(shù)據(jù)操作 使用者可按需修改商品信息 先查找 后修改 SQL 語句實現(xiàn) String sql update Item set 藥品名稱 text 藥品類別 text2 產(chǎn)地 text3 where 藥品編號 parseInt 15 六 系統(tǒng)詳細設(shè)計及實現(xiàn) 1 1 系統(tǒng)功能模塊說明 系統(tǒng)功能模塊說明 本程序分倉庫管理 銷售管理 信息查詢 統(tǒng)計管理 逼倉巡視 5 個界面 只有超級用戶在倉庫管理頁面具有修改按鈕 而其他用戶只擁有查詢按鈕 本程序通過預讀數(shù)據(jù)庫內(nèi)容 在信息查詢頁面采用人性化的選項卡選擇 避免了 可能出現(xiàn)的輸入錯誤而造成的失誤 同時本程序所有查詢均滿足單一查詢 即多空只 填一即可 在銷售管理頁面中 用戶可以添加新的銷售信息 但銷售數(shù)量等仍需滿足庫存要 求 若庫存不足將無法添加并自動滾回操作 若插入成功 則自動更新庫存數(shù)量表格 2 2 每個模塊的關(guān)鍵語句及關(guān)鍵技術(shù)說明 每個模塊的關(guān)鍵語句及關(guān)鍵技術(shù)說明 I 倉庫管理 倉庫管理 多按鈕 分線界面 使用戶視覺清晰 不至于覺得界面太過凌亂 表格可隨 時使用不同按鈕更新 jPanel1 add Welcome jPanel1 add wtable1 T1 setLayout null T2 setLayout null T3 setLayout null T4 setLayout null T1 setBounds 515 20 270 80 T2 setBounds 515 120 270 80 T3 setBounds 515 220 270 80 T4 setBounds 515 320 270 80 jPanel1 add T1 jPanel1 add T2 jPanel1 add T3 jPanel1 add T4 MedicineMs new JButton 在庫藥物信息 Search1 new JButton 更改 MedicineMs setBounds 10 30 120 30 Search1 setBounds 160 30 100 30 AllMs new JButton 倉儲記錄 Search2 new JButton 查找 AllMs setBounds 10 30 120 30 Search2 setBounds 160 30 100 30 Insert new JButton 進貨 Out new JButton 出貨 Insert setBounds 10 30 120 30 Out setBounds 160 30 100 30 WareMs new JButton 進貨記錄 WareMs setBounds 10 30 120 30 T1 add MedicineMs T1 add Search1 T2 add AllMs T2 add Search2 T3 add Insert T3 add Out T4 add WareMs 16 II 銷售管理 銷售管理 隨時驗證庫存數(shù)量 從而決定是否可以插入新數(shù)據(jù) 此由觸發(fā)器實現(xiàn) USE Medicine GO Object Trigger dbo Up Script Date 2015 6 15 9 33 30 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO ALTER TRIGGER dbo Up ON dbo Sale FOR INSERT AS declare 倉位號 int declare 數(shù)量 int declare 庫存數(shù)量 int select 倉位號 倉位號 from INSERTED if exists select from Warehouse where 倉位號 倉位號 BEGIN select 數(shù)量 銷售數(shù)量 from INSERTED select 庫存數(shù)量 庫存數(shù)量 from Warehouse where 倉位號 倉位號 if 庫存數(shù)量 數(shù)量 1 BEGIN ROLLBACK TRAN print 庫存量不足 不允許出庫 END else update Warehouse set 庫存數(shù)量 庫存數(shù)量 數(shù)量 where 倉位號 倉位號 END 17 七 附錄 部分代碼 存儲過程 1 按名稱或類別搜索銷售記錄 USE Medicine GO Object StoredProcedure dbo SearchSale Script Date 2015 6 15 21 23 16 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO ALTER PROCEDURE dbo SearchSale 藥品名稱 varchar 20 藥品類別 varchar 20 AS if 藥品名稱 is null and 藥品類別 is null return 6 else if 藥品名稱 is not null and 藥品類別 is not null BEGIN select 銷售編號 倉位號 藥品名稱 藥品類別 銷售單價 銷售數(shù)量 柜臺號 銷售人工 號 銷售日期 from 銷售情況 where 藥品名稱 藥品名稱 and 藥品類別 藥品類別 END if 藥品名稱 is not null and 藥品類別 is null select 銷售編號 倉位號 藥品名稱 藥品類別 銷售單價 銷售數(shù)量 柜臺號 銷售人工 號 銷售日期 from 銷售情況 where 藥品名稱 藥品名稱 if 藥品類別 is not null and 藥品名稱 is null select 銷售編號 倉位號 藥品名稱 藥品類別 銷售單價 銷售數(shù)量 柜臺號 銷售人工 號 銷售日期 from 銷售情況 where 藥品類別 藥品類別 2 進貨 USE Medicine GO Object StoredProcedure dbo Ware insert Script Date 2015 6 15 21 23 43 18 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO ALTER PROCEDURE dbo Ware insert 倉位號 int 進貨編號 int 庫存數(shù)量int AS if exists select from Warehouse where 倉位號 倉位號 Rollback TransAction else insert into Warehouse 倉位號 進貨編號 庫存數(shù)量 values 倉位號 進貨編號 庫存數(shù)量 觸發(fā)器 1 進貨時更新庫存表 位于 PutIn 表 USE Medicine GO Object Trigger dbo UpIn Script Date 2015 6 15 21 28 58 SET ANSI NULLS ON GO SET QUOTED I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學英語必背基礎(chǔ)知識
- 科技前沿下的班級學術(shù)熱潮組織與傳播策略
- 用繪畫表達內(nèi)心的思考計劃
- 社交媒體環(huán)境下的網(wǎng)絡(luò)安全及個人隱私保護策略
- 智能倉儲系統(tǒng)的應(yīng)用計劃
- 小班自然觀察與戶外學習計劃
- 跨文化團隊中的英文溝通協(xié)調(diào)技巧
- 展會現(xiàn)場安保的策劃與執(zhí)行計劃
- 跨境電商業(yè)務(wù)流程優(yōu)化與實施
- 質(zhì)量管理體系在辦公自動化生產(chǎn)中的應(yīng)用
- 正常肌肉及常見肌病的病理學表現(xiàn)
- 01-BUFR格式應(yīng)用指南(試用版)
- 體育測量與評價04心肺功能的測量與評價
- 提高意識風險防范化解能力體會發(fā)言
- RB/T 089-2022綠色供應(yīng)鏈管理體系要求及使用指南
- 2023年度危險作業(yè)安全監(jiān)護手冊
- 馬克思主義哲學十講
- 催化材料智慧樹知到答案章節(jié)測試2023年南開大學
- GB/T 9846.1-2004膠合板第1部分:分類
- GB/T 32685-2016工業(yè)用精對苯二甲酸(PTA)
- 部編優(yōu)質(zhì)課國家一等獎初中語文八年級下冊《大道之行也》
評論
0/150
提交評論