




已閱讀5頁,還剩26頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
網絡數據庫技術課 程 設 計題 目 客戶訂購登記系統 班 級 網絡0904 學 號 310909050154 姓 名 袁建龍 指導老師 彭維平 2012年 12 月 22 日目 錄一、概述31.1 課程設計的目的31.2 課程設計的內容31.3 課程設計的要求4二、需求分析52.1 系統需求52.2 數據字典7三、系統總體設計93.1系統總體設計思路93.2 概念模型設計103.2.1 局部E-R圖103.2.2 全局E-R圖143.3 邏輯結構設計143.4 數據庫建立實施193.4.1 建立數據庫193.4.2 建立關系表19四、系統實現25五、系統評價27六、課程設計心得、總結28參考文獻:29一概述1.1課程設計的目的通過課程設計,使學生具備將數據庫系統與現實世界密切、協調一致結合起來的能力,掌握數據庫設計中的需求分析、概念設計、邏輯設計、物理設計的方法,并能夠用具體的數據庫和編程語言來解決實際的問題。此外還要求學生具備實驗結果分析、總結及撰寫技術報告的能力。1.2課程設計的內容 客戶訂購登記系統 現有一個公司希望為其客戶訂購行為建立一個數據庫。 如果一個客戶可以有一份或多份訂單,每份訂單可以訂購一種或多種商品。每份訂單有一個發票,可以通過多種方式來支付,例如支票,信用卡或者現金。處理這個客戶訂購登記的職工的名字要被記錄下來。 部門工作人員負責整理訂單并根據庫存情況處理訂單。如果訂單上的產品在庫存中有,就可以直接發貨,發貨方式也有多種;如果訂單上的產品在庫存中沒有,就不需要登記或者訂購其它產品。1.3課程設計的要求1、根據題目查找資料及調研,寫出數據庫系統的需求分析報告;2、根據需求分析,設計系統的功能結構,畫出系統的功能結構圖,設計的功能要全面、正確,能解決現實世界各類用戶的實際需要;3、根據需求分析,確定所設計的系統涉及到的實體、各實體的屬性以及各實體之間的聯系,用E-R圖完成系統的概念模型設計,設計的概念模型要能全面、真實的反應現實世界,能滿足系統功能的需要;4、根據E-R圖轉換為DBMS支持的關系模型;5、根據邏輯模型、系統環境和用戶需求,設計數據庫的物理結構。6、采用B/S模式,使用Java、ASP、JSP、PHP或ASP.NET程序設計語言之一進行相應前臺主要模塊和菜單的設計,選擇Mysql、Oracle或者SQL Server數據庫作為后臺服務器。7、設計一組數據庫表的測試實例,對各項功能進行簡單的測試并寫出測試結果。二需求分析2.1系統需求客戶訂購登記數據流圖 客戶實體的描述屬性有:客戶編號,客戶名,郵編,電話號,傳真號,銀行帳號。產品實體的描述屬性有:產品編號,產品名,型號,規格,單價,重量。訂單實體的描述屬性有:訂單編號,客戶編號,訂貨日期,交貨日期,發貨方式編號,職工編號,執行狀態。訂單細節實體的描述屬性有:訂單編號,產品編號,訂貨數量。發票實體的描述屬性有:發票編號,開票日期,付款日期,訂單編號,客戶編號,付款方式編號。發貨實體的描述屬性有:發貨編號,訂單編號,產品編號,數量,發貨日期,發貨方式編號,完成狀態,職工編號。職工實體的描述屬性有:職工編號,姓名,性別,出生年月,地址,辦公電話,住宅電話,EMAIL,職務,職稱。付款方式實體的描述屬性有:付款方式編號,付款方式。 發貨方式實體的描述屬性有:發貨方式編號,發貨方式。2.2數據字典(一)客戶表(二)產品表(三)訂單表(四)訂單細節表(五)發票表(六)發貨表(七)職工信息表(八)付款方式表(九)發貨方式表三系統總體設計3.1.系統總體設計思路3.2概念模型設計3.2.1局部E-R圖 客戶實體和訂單實體通過提交訂單發生聯系。每個客戶可以提交多份訂單,而每份訂單只對應一個客戶。因此,客戶實體和訂單實體之間是一對多聯系,如圖所示。 產品實體和訂單細節實體通過訂購產品發生聯系。每個訂單細節可以訂購一種產品,而每種產品可以被不同的訂單訂購。因此,產品實體和訂單細節實體之間是一對多聯系,如圖所示。 訂單細節實體是訂單實體的組成部分,故必存在聯系。一份訂單可以訂購多種產品,也就是可以有多個訂單細節,而每個訂單細節只對應一份訂單。因此,訂單實體和訂單細節實體之間是一對多聯系,如圖所示。 職工實體通過處理訂單和訂單實體發生聯系。每個職工可以處理多份訂單,而每份訂單只能由一個職工處理。因此,職工實體和訂單實體之間是一對多聯系,如圖所示。 付款方式是發票的組成部分,故必存在聯系。每張發票對應一種付款方式,而每種付款方式可以用于不同的發票中。因此,付款方式實體和發票實體之間是一對多聯系,如圖所示。 發貨實體與訂單細節實體通過發貨打包發生聯系。每個訂單細節對應多次發貨,而每次發貨只對應一個訂單細節。因此,發貨實體和訂單細節實體之間是一對多聯系,如圖所示。 發貨方式是發貨的組成部分,故必存在聯系。每個發貨對應一種發貨方式,而每種發貨方式可以用于不同的發貨中。因此,發貨方式實體和發貨實體之間是一對多聯系,如圖所示訂單實體和發票實體通過開具發票發生聯系。每份訂單開具一張發票,而每張發票也只對應一份訂單。因此,訂單實體和發票實體之間是一對一聯系,如圖所示。3.2.2全局E-R圖3.3 邏輯結構設計客戶(客戶編號,客戶名,郵編,電話號,傳真號,銀行帳號)主鍵:客戶編號。候補鍵:電話號,傳真號,銀行帳號。函數依賴集F:客戶編號客戶名,郵編,電話號,傳真號,銀行帳號,電話號客戶編號,郵編,傳真號,銀行帳號,傳真號客戶編號,客戶名,郵編,電話號,銀行帳號,銀行帳號客戶編號,客戶名,郵編,電話號,傳真號雖然,客戶編號電話號,電話號傳真號,但由于電話號客戶編號也成立,所以,客戶編號傳真號不是傳遞函數依賴。 客戶關系中不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以客戶關系滿足第3范式。 產品(產品編號,產品名,型號,規格,單價,重量)主鍵:產品編號。函數依賴集F:產品編號產品名,型號,規格,單價,重量。 產品關系不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以產品關系滿足第3范式。 訂單(訂單編號,客戶編號,訂貨日期,交貨日期,發貨方式編號,職工編號,執行狀態)主鍵:訂單編號。外鍵:客戶編號,引用了客戶關系中的客戶編號; 發貨方式編號,引用了發貨方式關系中的發貨方式編號; 職工編號,引用了職工關系中的職工編號。函數依賴集F:訂單編號客戶編號,訂貨日期,交貨日期,發貨方式編號,職工編號,執行狀態。 訂單關系中不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以訂單關系滿足第3范式。 訂單細節(訂單編號,產品編號,訂貨數量)主鍵:訂單編號產品編號。函數依賴集F:訂單編號,產品編號訂貨數量。 訂單細節關系中不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以訂單細節關系滿足第3范式。發票(發票編號,開票日期,付款日期,訂單編號,客戶編號,付款方式編號)主鍵:發票編號。候選鍵:訂單編號。外鍵:訂單編號,引用了訂單關系中的訂單編號; 客戶編號,引用了客戶關系中的客戶編號; 付款方式編號,引用了付款方式關系中的付款方式編號。函數依賴集F:發票編號開票日期,付款日期,訂單編號,客戶編號,付款方式編號,訂單編號發票編號,開票日期,付款日期,客戶編號,付款方式編號。 發票關系中不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以發票關系滿足第3范式。發貨(發貨編號,數量,發貨日期,訂單編號,產品編號,發貨方式編號,完成狀態,職工編號)主鍵:發貨編號。外鍵:訂單編號,引用了訂單關系中的訂單編號; 產品編號,引用了產品關系中的產品編號; 發貨方式編號,引用了發貨方式關系中的發貨方式編號。函數依賴集F:發貨編號數量,發貨日期,訂單編號,產品編號,發貨方式編號,完成狀態,職工編號。 發貨關系中不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以發貨關系滿足第3范式。 職工(職工編號,姓名,性別,出生年月,地址,辦公電話,住宅電話,EMAIL,職務,職稱)主鍵:職工編號。候選鍵:EMAIL。函數依賴集F:職工編號姓名,性別,出生年月,地址,辦公電話,住宅電話,EMAIL,職務,職稱,EMAIL職工編號,姓名,性別,出生年月,地址,辦公電話,住宅電話,職務,職稱。 職工關系中不存在非主屬性與候選鍵之間的部分與傳遞函數依賴,所以職工關系滿足第3范式。 付款方式(付款方式編號,付款方式)主鍵:付款方式編號。函數依賴集F:付款方式編號付款方式。 付款方式關系滿足第3范式。發貨方式(發貨方式編號,發貨方式)主鍵:發貨方式編號。函數依賴集F:發貨方式編號發貨方式。 發貨方式關系滿足第3范式。 所有關系都滿足較高的范式要求,故客戶訂購登記管理的數據庫設計是合理的。3.4 數據庫建立實施3.4.1 建立數據庫CREATE DATABASE customer_db;USE customer_db;3.4.2 建立關系表建立賬單表:CREATE TABLE t_bill ( bill_id int(11) NOT NULL AUTO_INCREMENT COMMENT 發票編號, raiseddate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 開票日期, paydate timestamp NOT NULL DEFAULT 0000-00-00 00:00:00 COMMENT 付款日期, o_id int(11) NOT NULL COMMENT 訂單編號, c_id int(11) NOT NULL COMMENT 客戶編號, pay_id int(11) NOT NULL COMMENT 付款方式編號, PRIMARY KEY (bill_id), KEY fk_bill_order (o_id), KEY fk_bill_customer (c_id), KEY fk_bill_pay (pay_id), CONSTRAINT fk_bill_customer FOREIGN KEY (c_id) REFERENCES t_customer (id), CONSTRAINT fk_bill_order FOREIGN KEY (o_id) REFERENCES t_order (id), CONSTRAINT fk_bill_pay FOREIGN KEY (pay_id) REFERENCES t_pay (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立客戶表:CREATE TABLE t_customer ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 客戶編號, name varchar(20) NOT NULL COMMENT 姓名, zip varchar(50) NOT NULL COMMENT 郵編, tel varchar(20) NOT NULL COMMENT 電話, fax varchar(20) NOT NULL COMMENT 傳真, bankno varchar(20) NOT NULL COMMENT 銀行帳號, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立職工表:CREATE TABLE t_employee ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 職工編號, name varchar(20) NOT NULL COMMENT 姓名, sex varchar(20) NOT NULL COMMENT 性別, dob date NOT NULL COMMENT 出生日期, address varchar(50) NOT NULL COMMENT 地址, worktel varchar(20) NOT NULL COMMENT 辦公電話, hometel varchar(20) NOT NULL COMMENT 住宅電話, email varchar(20) NOT NULL COMMENT 郵箱, position varchar(20) NOT NULL COMMENT 職位, title varchar(20) NOT NULL COMMENT 職稱, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立訂單表:CREATE TABLE t_order ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 訂單編號, p_id int(11) NOT NULL COMMENT 客戶編號哦, order_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 訂貨日期, jiao_date timestamp NOT NULL DEFAULT 0000-00-00 00:00:00 COMMENT 交貨日期, sm_id int(11) NOT NULL COMMENT 發貨方式編號, e_id int(11) NOT NULL COMMENT 職工編號, state varchar(50) NOT NULL COMMENT 執行狀態, PRIMARY KEY (id), KEY fk_order_customer (p_id), KEY fk_order_shipmentmethod (sm_id), KEY fk_order_employee (e_id), CONSTRAINT fk_order_customer FOREIGN KEY (p_id) REFERENCES t_product (id), CONSTRAINT fk_order_employee FOREIGN KEY (e_id) REFERENCES t_employee (id), CONSTRAINT fk_order_shipmentmethod FOREIGN KEY (sm_id) REFERENCES t_shipmentmethod (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立訂單細節表:CREATE TABLE t_order_details ( o_id int(11) NOT NULL COMMENT 訂單號, p_id int(11) NOT NULL COMMENT 產品號, numer int(11) NOT NULL COMMENT 訂貨數量, PRIMARY KEY (o_id,p_id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立付款表:REATE TABLE t_pay ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 付款方式編號, method varchar(20) NOT NULL COMMENT 付款方式, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立產品表:CREATE TABLE t_product ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 產品編號, name varchar(20) NOT NULL COMMENT 產品名, moder varchar(20) NOT NULL COMMENT 型號, norm varchar(20) NOT NULL COMMENT 規格, price float NOT NULL COMMENT 單價, weight float NOT NULL COMMENT 重量, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立發貨表:CREATE TABLE t_shipment ( shipment_id int(11) NOT NULL AUTO_INCREMENT COMMENT 發貨編號, o_id int(11) NOT NULL COMMENT 訂單號, p_id int(11) NOT NULL COMMENT 產品號, number int(11) NOT NULL COMMENT 數量, date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 發貨日期, sm_id int(11) NOT NULL COMMENT 發貨方式編號, state varchar(20) NOT NULL COMMENT 完成狀態, e_id int(11) NOT NULL COMMENT 職工編號, PRIMARY KEY (shipment_id), KEY fk_shipment_order (o_id), KEY fk_shipment_product (p_id), KEY fk_shipment_shipmentmethod (sm_id), KEY fk_shipment_employee (e_id), CONSTRAINT fk_shipment_employee FOREIGN KEY (e_id) REFERENCES t_employee (id), CONSTRAINT fk_shipment_order FOREIGN KEY (o_id) REFERENCES t_order (id), CONSTRAINT fk_shipment_product FOREIGN KEY (p_id) REFERENCES t_product (id), CONSTRAINT fk_shipment_shipmentmethod FOREIGN KEY (sm_id) REFERENCES t_shipmentmethod (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立發貨方式表:CREATE TABLE t_shipmentmethod ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 發貨方式編號, method varchar(20) NOT NULL COMMENT 發貨方式, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;四 系統實現1. 數據庫實現:在使用mysql創建好數據庫后,對數據庫進行連接,在設置好數據源與JDBC的連接,就能使用數據庫了。在此程序中,數據源設置為customer_db。數據庫的連接:Class.forName(com.mysql.jdbc.Driver);Connection conn = DriverManager.getConnection(jdbc:mysql:/customer_db);2. 登陸界面:登陸時的驗證:String name = request.getParameter(admin);String pwd = request.getParameter(pwd)AdminDao dao = new AdminDao();Admin admin = dao.findByNameAndPassword(name, pwd);if(admin!=null)if(admin.getName().equals(name)&admin.getPassword().equals(pwd)request.setAttribute(admin, admin);request.getRequestDispatcher(show.jsp).forward(request, response);elseresponse.sendRedire
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業大數據與機器學習的結合策略
- 4s店保潔管理制度
- 機電作業安全管理制度
- 標準溶液配制管理制度
- 校內快遞安全管理制度
- 校園七防工程管理制度
- 校園安全設施管理制度
- 校園武術學員管理制度
- 校園租賃車輛管理制度
- 校園進入車輛管理制度
- 2025年上半年內蒙古包頭市市直事業單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 4.2.2光柵傳感器測量位移
- 2025年華遠陸港集團所屬華遠陸港網絡貨運(山西)限公司招聘(72人)管理單位筆試遴選500模擬題附帶答案詳解
- 國家開放大學《金融學》機考題庫
- 證據法學復習資料
- 老年骨關節病康復護理
- 【MOOC】機械工程測試技術-東南大學 中國大學慕課MOOC答案
- 2024版血液透析醫院感染預防與控制標準
- 縣委督查業務培訓
- 海洋環境監測技術
- 2023-2024學年江蘇省蘇州市高二下學期6月期末物理試題(解析版)
評論
0/150
提交評論