版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《數(shù)據(jù)庫原理及應(yīng)用》課程設(shè)計(jì)</p><p> 設(shè)計(jì)題目 醫(yī)藥銷售管理系統(tǒng) </p><p> 設(shè)計(jì)時(shí)間 2011.12.29至 2012.1.4 </p><p> 學(xué)生姓名 </p><p>
2、; 學(xué)生學(xué)號 </p><p> 所在班級 </p><p> 指導(dǎo)教師 </p><p><b> 醫(yī)藥銷售管理系統(tǒng)</b></p><p><
3、b> 一 可行性性研究</b></p><p> 近年來,中國醫(yī)藥行業(yè)迅速發(fā)展,藥店企業(yè)多業(yè)態(tài)經(jīng)營,倉儲式大型超市、中等規(guī)模超市、便利連鎖綜合發(fā)展。隨著規(guī)模的擴(kuò)大,傳統(tǒng)的醫(yī)藥管理已經(jīng)不能適應(yīng)發(fā)展的需要,很難在激烈的競爭中生存。</p><p> 通過對從事醫(yī)藥產(chǎn)品的零售、批發(fā)等工作企業(yè)的深入調(diào)查,發(fā)現(xiàn)其業(yè)務(wù)主要包括企業(yè)藥品銷售、出入庫管理、企業(yè)的財(cái)務(wù)、人事管理等。醫(yī)
4、藥管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作。手工進(jìn)行企業(yè)日常的藥品銷售、出入庫的工作,容易出現(xiàn)“開空單”的現(xiàn)象,且呆賬、錯(cuò)賬時(shí)有發(fā)生,而且費(fèi)時(shí)費(fèi)力。本系統(tǒng)在設(shè)計(jì)中考慮和克服了上述問題,實(shí)現(xiàn)了企業(yè)管理工作的系統(tǒng)化、規(guī)范化和自動(dòng)化。</p><p><b> 二 系統(tǒng)需求分析</b></p><p> 2.1.1 系統(tǒng)目標(biāo)與要求</p><p>
5、 要求本系統(tǒng)能夠投入實(shí)際的使用并且滿足基本的功能要求。要求具有較高的可靠性、安全性和易維護(hù)性,具有較高的可移植性。</p><p> 本系統(tǒng)實(shí)現(xiàn)了以下的功能:</p><p> ?。?)基本信息模塊:包括藥品信息、員工信息、客戶信息、供應(yīng)商信息四個(gè)子模塊。</p><p> ?。?)進(jìn)貨管理模塊:包括入庫登記、入庫登記查詢二個(gè)子模塊。</p>&l
6、t;p> ?。?)庫房管理模塊:包括庫存查詢、庫存盤點(diǎn)、退貨處理三個(gè)子模塊。</p><p> ?。?)銷售管理模塊:包括銷售登記、銷售退貨、銷售報(bào)表查詢?nèi)齻€(gè)子模塊。</p><p> (5)財(cái)務(wù)統(tǒng)計(jì)模塊:包括當(dāng)日統(tǒng)計(jì)、當(dāng)月統(tǒng)計(jì)二個(gè)子模塊。</p><p> ?。?)系統(tǒng)維護(hù)模塊:包括數(shù)據(jù)安全管理、操作員管理、權(quán)限設(shè)置三個(gè)模塊。</p><
7、;p> 說明:根據(jù)對現(xiàn)實(shí)中醫(yī)藥銷售管理業(yè)務(wù),將用戶分為二類超級管理員(經(jīng)理)、普通管理員(操作員)。</p><p> 2.1.2 系統(tǒng)分析</p><p><b> 用戶活動(dòng)及活動(dòng)圖</b></p><p> ?。?)經(jīng)理主要參與活動(dòng)有:</p><p> ?、?查詢銷售情況和財(cái)務(wù)狀況以便了解本企業(yè)的經(jīng)營狀
8、況,作出相應(yīng)的決策; </p><p> ?、?管理員工,了解不同員工的上班時(shí)間和他的相關(guān)的業(yè)績;</p><p> ?、?客戶的管理,了解客戶的數(shù)量,注銷有問題的客戶;</p><p> ④ 供應(yīng)商的管理,了解供應(yīng)信息,選擇最合適的供應(yīng)商。</p><p> ?。?)營業(yè)員主要活動(dòng)有:</p><p> ①醫(yī)藥銷
9、售管理是指對藥品信息的錄入、更新、修改和刪除;</p><p> ?、诓樵兯幤沸畔?,以了解是否有該藥品和庫存等信息;</p><p> ?、垆N售藥品,出庫記錄;</p><p> ?、芡诉€藥品,入庫記錄;</p><p> ?、莠F(xiàn)金收支是指對進(jìn)出帳目的記錄統(tǒng)計(jì)。</p><p> ?。?)顧客主要活動(dòng):</p&g
10、t;<p><b> ?、俨樵兯幤沸畔?;</b></p><p><b> ?、谶x購藥品。</b></p><p> 2.1.3 業(yè)務(wù)流程圖</p><p> 2.2 系統(tǒng)邏輯方案</p><p> 系統(tǒng)分析的主要成果是系統(tǒng)的邏輯模型。本系統(tǒng)的邏輯模型主要是以系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)
11、字典為主要描述工具。即在無紙化網(wǎng)絡(luò)考試系統(tǒng)管理方式和業(yè)務(wù)流程進(jìn)行認(rèn)真分析和研究的基礎(chǔ)上,排除現(xiàn)有組織機(jī)構(gòu)和業(yè)務(wù)分工所造成的信息障礙。</p><p> 2.2.1 數(shù)據(jù)流程圖(DFD):</p><p> 數(shù)據(jù)流圖是組織中信息運(yùn)動(dòng)的抽象。是在調(diào)研的基礎(chǔ)上,從系統(tǒng)的科學(xué)性、管理的合理性、實(shí)際運(yùn)動(dòng)的可行性角度出發(fā)。將信息處理功能和彼此之間的聯(lián)系自頂向下,逐層分解,從邏輯上精確地描述系統(tǒng)應(yīng)具
12、有的數(shù)據(jù)加工功能、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲及數(shù)據(jù)來源和去向(外部實(shí)體)等項(xiàng)目。</p><p> 在數(shù)據(jù)流程圖中可以很清楚的看到數(shù)據(jù)的流向,藥品信息的數(shù)據(jù)分別能夠流向經(jīng)理、員工和顧客。藥品銷售信息的信息也流經(jīng)理。藥品銷售信息記錄的是藥品銷售和退還的信息。顧客表信息從顧客流出又可以流回到顧客和員工、經(jīng)理。</p><p> 2.2.2 數(shù)據(jù)字典(簡稱DD)</p>&l
13、t;p> 繪制DFD,只是對數(shù)據(jù)處理和彼此之間的聯(lián)系進(jìn)行了說明。為進(jìn)一步明確數(shù)據(jù)的詳細(xì)內(nèi)容和數(shù)據(jù)加工過程,應(yīng)將數(shù)據(jù)流圖中的全部數(shù)據(jù)流及其組成部分的數(shù)據(jù)元素,數(shù)據(jù)存儲,數(shù)據(jù)加工,通過數(shù)據(jù)字典描述清楚,以便于此后系統(tǒng)設(shè)計(jì)的進(jìn)行。這就需要開發(fā)人員編寫詳細(xì)的數(shù)據(jù)字典,來描述系統(tǒng)開發(fā)過程的細(xì)節(jié)。</p><p> 下面列出本系統(tǒng)中的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲、加工處理和數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)字典。數(shù)據(jù)字典可采用圖表格式或較
14、緊湊的記錄格式描述,本文采用的是圖表格式。</p><p> 數(shù)據(jù)項(xiàng)的DD表列舉如下:</p><p> 表2.1 藥品編號的數(shù)據(jù)字典</p><p><b> 表2.2 藥品名稱</b></p><p><b> 表2.3 密碼</b></p><p> 三 數(shù)
15、據(jù)庫系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</p><p> 3.1軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)</p><p> 軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)就是將整個(gè)系統(tǒng)合理的劃分成各個(gè)功能模塊,正確處理模塊之間與模塊內(nèi)部的聯(lián)系及它們之間的調(diào)用關(guān)系和數(shù)據(jù)聯(lián)系,定義各模塊的內(nèi)部結(jié)構(gòu)等,本系統(tǒng)的軟件總體結(jié)構(gòu)按分解-協(xié)調(diào)的原則,信息隱蔽抽象的原則,自頂向下的原則,一致性原則,面向用戶的原則進(jìn)行設(shè)計(jì)。</p><p&
16、gt; 3.2數(shù)據(jù)存儲的總體設(shè)計(jì)</p><p> 按用途分類可把本系統(tǒng)文件分成以下幾種:</p><p> 主文件:系統(tǒng)中的主文件是最重要的共享文件,主要存放具有固定值屬性的數(shù)據(jù)。它需要長期保存,并不斷更新。</p><p> 處理文件:處理文件包含下一次更新文件所需要的全部記錄,本系統(tǒng)中的處理文件如新聞登錄日志文件、待審核項(xiàng)目信息文件。</p>
17、;<p> 3.3系統(tǒng)功能模塊設(shè)計(jì)</p><p> 通過對系統(tǒng)的數(shù)據(jù)流圖進(jìn)行分析,進(jìn)一步進(jìn)行功能分解,直到分解成含義明確,功能單一的功能模塊,從而得到系統(tǒng)的功能模塊結(jié)構(gòu)圖。</p><p> 3.4數(shù)據(jù)庫詳細(xì)設(shè)計(jì)</p><p> 3.4.1數(shù)據(jù)庫設(shè)計(jì)</p><p> 數(shù)據(jù)庫的設(shè)計(jì)是指對一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造數(shù)據(jù)
18、庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),滿足各種用戶需求。作為信息資源開發(fā)、管理和服務(wù)的一種有效的手段,數(shù)據(jù)庫技術(shù)的應(yīng)用已越來越廣泛,從小型的單項(xiàng)事務(wù)處理系統(tǒng)到大型的信息系統(tǒng)大都用先進(jìn)的數(shù)據(jù)庫技術(shù)來保持系統(tǒng)數(shù)據(jù)的安全性、完整性和共享性。對一個(gè)實(shí)際的系統(tǒng)來說,數(shù)據(jù)庫表的設(shè)計(jì)在遵循數(shù)據(jù)庫理論的同時(shí),必須能用開發(fā)工具來實(shí)現(xiàn)用戶在各方面提出的功能要求。</p><p><b> ?、?E-R圖:</b>&l
19、t;/p><p> 在系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)中,先要對系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲進(jìn)行分析,分析各數(shù)據(jù)存儲之間的關(guān)系,然后才能得出系統(tǒng)的關(guān)系模式??梢圆捎肊-R圖的方法來進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析,E-R設(shè)計(jì)方法是一種通過E-R圖來描述現(xiàn)實(shí)世界信息結(jié)構(gòu)的DB設(shè)計(jì)方法。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成。各分E-R圖說明如下:</p><p><b> ① 經(jīng)理E-R圖:</b>
20、;</p><p> ?、?供應(yīng)商E-R圖:</p><p><b> ?、?員工E-R圖:</b></p><p> ?、?藥品銷售清單E-R圖:</p><p><b> ?、?客戶E-R圖:</b></p><p><b> ?、?藥品E-R圖:</b&
21、gt;</p><p><b> ?、?整體E-R圖:</b></p><p><b> ⑵ 關(guān)系模式與碼:</b></p><p> 藥品信息(藥品編號,藥品名稱,藥品類別代號,售價(jià),進(jìn)價(jià),庫存量,供應(yīng)商,有效期) 外碼:藥品類別代號、 供應(yīng)商</p><p> 藥品分類索引信息(藥品類別
22、代號,類別說明)</p><p> 員工信息(員工號,姓名,用戶名,密碼,職位,權(quán)限)</p><p> 客戶信息(客戶號,客戶名稱,聯(lián)系人,聯(lián)系方式,客戶所在城市)</p><p> 供應(yīng)商信息(供應(yīng)商號,供應(yīng)商名稱,聯(lián)系人,聯(lián)系方式,供應(yīng)商所在城市)</p><p> 藥品銷售信息(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價(jià),數(shù)
23、量,供應(yīng)商,總額,銷售員編碼) 外碼:銷售員編碼、藥品編碼</p><p><b> ?、?關(guān)系模式優(yōu)化:</b></p><p> 在上述關(guān)系模式中,每一個(gè)分量都是不可分割的數(shù)據(jù)項(xiàng)所以都符合第一范式;而且前四個(gè)關(guān)系模式都是單個(gè)屬性作為碼,沒有任何非主屬性對碼部分函數(shù)依賴,在藥品銷售信息內(nèi)雖由三個(gè)屬性作為碼,但也不存在非主性對碼的部分函數(shù)依賴,所以上都符合第二范式
24、;藥品信息、藥品類別索引、客戶信息、供應(yīng)商信息四個(gè)關(guān)系模式中都不存在非主屬性對碼的傳遞函數(shù)依賴,都屬于第三范式。</p><p> 在員工信息關(guān)系模式中,員工是按照權(quán)限分類的,職位不同權(quán)限也不同,這樣該關(guān)系模式就存在了非主屬性對碼的傳遞依賴:職工號->職位,職位->權(quán)限,所以就將用員工信息分解為如下現(xiàn)個(gè)模式:</p><p> ?、賳T工信息(員工號,姓名,用戶名,用戶口令,職
25、位)</p><p> ②職位權(quán)限信息(職位,權(quán)限)</p><p> 本系統(tǒng)不考慮職工信息的管理,為了使銷售員編號與銷售員的職工號連系起來,并能通過職工姓名和職位來修改用戶信息所以把員工的部分信息(職工號,姓名,職位)和經(jīng)理(用戶名,密碼)合成了員工信息(員工號,姓名,用戶名,密碼,職位,權(quán)限)以便系統(tǒng)功能的實(shí)現(xiàn),所以在此不采用模式分解。</p><p>
26、藥品銷售信息中有大量的數(shù)據(jù)冗余,表達(dá)不明確,將其分解為如下兩個(gè)模式:</p><p> ?、偎幤蜂N售主表(銷售編碼,銷售日期,銷售員編號,總金額)</p><p> ?、谒幤蜂N售子表(銷售編碼,銷售日期,藥品編碼,藥品名稱,單價(jià),數(shù)量,供應(yīng)商)</p><p><b> ?、?數(shù)據(jù)庫設(shè)計(jì)</b></p><p> 對上
27、述E-R圖所需的實(shí)體需要的幾個(gè)關(guān)鍵表的設(shè)計(jì)如下:</p><p><b> 表名:藥品信息表</b></p><p><b> 表名:客戶信息</b></p><p><b> 表名:供應(yīng)商信息</b></p><p><b> 表名:藥品銷售主表</b
28、></p><p><b> 表名:藥品銷售子表</b></p><p> 表名:藥品類別索引信息</p><p><b> 表名:員工信息</b></p><p> 3.4.2 數(shù)據(jù)庫的完整性和安全性</p><p><b> ?、?數(shù)據(jù)庫的完整性&
29、lt;/b></p><p> 數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫管理系統(tǒng)(DBMS)用一定的機(jī)制來檢查數(shù)據(jù)庫中的數(shù)據(jù)是否滿足規(guī)定的條件——完整性約束條件,數(shù)據(jù)的約束條件是語義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫中。</p><p> 本系統(tǒng)中定義了表與表之間的聯(lián)系有助于實(shí)現(xiàn)完整性規(guī)則,一般在程序中實(shí)現(xiàn)具體的完整性控制。</p><p><
30、;b> 實(shí)體完整性</b></p><p> 例如:CREATE TABLE MedInfor/*創(chuàng)建藥品信息表*/</p><p> (MedicineCode char(6) constraint M_PRIM PRIMARY KEY,</p><p> MedicineName varchar(8) NOT NULL,</p&g
31、t;<p> MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode),</p><p> Price Money(8),</p><p> ListPrice Money(8),</p><p> Number Int(4),</p><p>
32、 FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode),</p><p> Userfulllife Datetime)</p><p><b> 參照完整性</b></p><p> 例如:create table sellMain/*創(chuàng)建醫(yī)藥銷售主表*/</p&
33、gt;<p> (SaleNo int constraint SM_PRIM PRIMARY KEY,</p><p> WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo),</p><p> SaleDate DateTime,</p><p> Amount Money)<
34、/p><p><b> ?、?數(shù)據(jù)庫的安全性</b></p><p> 數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫系統(tǒng)中,大量的數(shù)據(jù)集中存放,而且為許多用戶直接共享,是寶貴的信息資源,系統(tǒng)的安全保護(hù)措施就顯得更為重要,它保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。</p><p> 本系統(tǒng)包括數(shù)據(jù)庫的安全和服
35、務(wù)器的安全。采用管理員表示和鑒定的方法實(shí)現(xiàn)數(shù)據(jù)庫的安全,此安全管理措施并不在前臺開發(fā)工具中實(shí)現(xiàn),而是在后臺數(shù)據(jù)庫中實(shí)現(xiàn)。在登錄數(shù)據(jù)庫時(shí),系統(tǒng)讓管理員戶表示自己的身份,不同的管理員權(quán)限不同,系統(tǒng)進(jìn)行核實(shí),鑒別此管理員是否為合法用戶,若是,系統(tǒng)進(jìn)一步核實(shí)用戶,通常要求用戶輸入口令,系統(tǒng)和對用戶口令以鑒別用戶身份。服務(wù)器的安全也是通過用戶在登錄服務(wù)器時(shí)輸入合法的用戶名和密碼來實(shí)現(xiàn)的。這是一種簡單可行的方法,實(shí)現(xiàn)起來比較方便。沒有采用更加復(fù)雜的
36、系統(tǒng)安全管理措施是因?yàn)楸竟芾硐到y(tǒng)一般是應(yīng)用在校園網(wǎng)中,采用安全管理措施主要是為了防止沒有修改權(quán)限的用戶無意間修改了數(shù)據(jù),因此采用用戶標(biāo)識和鑒定的安全管理措施就能夠保障數(shù)據(jù)庫的安全性。</p><p> 四 數(shù)據(jù)庫的運(yùn)行(SQL Server2000語句完成)</p><p> 4.1創(chuàng)建醫(yī)藥銷售管理系統(tǒng)</p><p> create database Med
37、icalManagerSystem/*創(chuàng)建醫(yī)藥銷售管理系統(tǒng)*/</p><p> use MedicalManagerSystem</p><p> 4.2創(chuàng)建藥品類別索引信息表</p><p> create table MedID//創(chuàng)建藥品類別索引信息表</p><p> (MedKindeCode char(10) const
38、raint MI_PRI PRIMARY KEY,</p><p> KindExplanation varchar(12) NOT NULL)</p><p><b> 其余略</b></p><p> 4.3建立存儲過程向表中插入、修改、刪除數(shù)據(jù)</p><p> ?、?插入數(shù)據(jù)的存儲過程 </p>
39、<p> create proc MedID_proc</p><p> @MedKindeCode char(10),@KindExplanation varchar(12)</p><p><b> as</b></p><p> insert into MedID (MedKindeCode,KindExplanat
40、ion) values(@MedKindeCode ,@KindExplanation )</p><p> exec MedID_proc '0001','口腔潰瘍'</p><p> exec MedID_proc '0002','感冒'</p><p> exec MedID_proc
41、39;0003','發(fā)燒'</p><p> exec MedID_proc '0004','拉肚子'</p><p> exec MedID_proc '0005' ,'外傷'</p><p><b> 其余略</b></p><
42、p> ⑵ 刪除數(shù)據(jù)的存儲過程 </p><p> create proc MedID_delete_proc</p><p> @MedKindeCode char(10)</p><p><b> as</b></p><p> delete from MedId </p><p&g
43、t; where MedKindeCode=@MedKindeCode</p><p> exec MedID_delete_proc '0002'</p><p><b> 其余略</b></p><p> ⑶ 修改數(shù)據(jù)的存儲過程 </p><p> create proc MedID_upd
44、ate_proc</p><p> @MedKindeCode char(10),@KindExplanation varchar(12),@MedKindeCode1 char(10)</p><p><b> as</b></p><p> update MedID </p><p> set MedKin
45、deCode=@MedKindeCode,KindExplanation=@KindExplanation</p><p> where MedKindeCode=@MedKindeCode1</p><p><b> 其余略</b></p><p> 4.4建立存儲過程實(shí)現(xiàn)單表查詢 </p><p> /*建立
46、名為“單表查詢1”的存儲過程,用來查詢某種藥品的信息*/ </p><p> create proc 單表查詢1</p><p> @MedicineCode char(6)</p><p><b> AS</b></p><p><b> select *</b></p>&
47、lt;p> from MedInfor</p><p> where MedicineCode=@MedicineCode</p><p> 建立存儲過程實(shí)現(xiàn)連接查詢 </p><p> /*建立名為“連接查詢1”的存儲過程,用來查詢某個(gè)藥品名稱對應(yīng)的藥品類型的信息*/ </p><p> create proc 連接查詢1&
48、lt;/p><p> @MedicineName varchar(8)</p><p><b> as</b></p><p> select MedicineName ,KindExplanation</p><p> from MedInfor,MedID</p><p> where
49、MedID.MedKindeCode=MedInfor.MedKindeCode and</p><p> MedicineName=@MedicineName</p><p><b> /</b></p><p> 建立存儲過程實(shí)現(xiàn)嵌套查詢</p><p> /*建立名為“嵌套查詢1”的存儲過錯(cuò),用來查詢某類藥
50、品的銷售量*/</p><p> create proc 嵌套查詢1</p><p> @KindExplanation varchar(12)</p><p><b> as</b></p><p> select Number</p><p> from sellChild <
51、/p><p> where MedicineCode In(select MedicineCode</p><p> from MedID</p><p> where KindExplanation=@KindExplanation)</p><p> /*建立名為“嵌套查詢2”的存儲過錯(cuò),用來查詢某個(gè)供應(yīng)商提供的商品*/</p&
52、gt;<p> create proc 嵌套查詢2</p><p> @FirmName varchar(16)</p><p><b> as</b></p><p> select MedicineName</p><p> from MedInfor</p><p>
53、 where FirmCode In (select FirmCode</p><p> from FirmInfor</p><p> where FirmName=@FirmName)</p><p> 建立存儲過程實(shí)現(xiàn)集合查詢</p><p> /*建立名為“集合查詢1”的存儲過錯(cuò),用來查詢提供某類商品的供應(yīng)商數(shù)*/</
54、p><p> create proc 集合查詢1</p><p> @MedicineName varchar(8)</p><p><b> as</b></p><p> select avg(FirmCode)</p><p> from FrimInfor</p>&l
55、t;p> where FirmCode in(select FirmCode</p><p> from MedInfor,FrimInfor</p><p> where MedInfor.FirmCode=FrimInfor.FirmCode and</p><p> MedicineName=@MedicineName)</p>&
56、lt;p><b> 4.5視圖建立</b></p><p> 由供應(yīng)商信息表“FirmInfor”建立一個(gè)視圖,該視圖由供應(yīng)商信息表的所有列構(gòu)成*/</p><p> create view 供應(yīng)商信息(供應(yīng)商編碼,供應(yīng)商名稱,聯(lián)系人,聯(lián)系電話,所在城市)</p><p><b> as</b></p&
57、gt;<p> select* from FirmInfor</p><p> 4.6建立INSERT觸發(fā)器</p><p> /*建立INSERT觸發(fā)器*/</p><p> create trigger MedID_insert on MedID</p><p> for insert</p><
58、;p> as if(select count(*)</p><p> from MedID_med,inserted</p><p> where MedID_med.MedKindeCode=inserted.MedKindeCode)=0</p><p> rollback transaction</p><p> 4.7
59、建立DELETE觸發(fā)器 </p><p> create trigger delete_MedID on MedID</p><p> for delete</p><p><b> as</b></p><p> select* from MedID</p><p> declar
60、e @MedKindeCode char(10) </p><p> select @MedKindeCode=MedKindeCode from deleted</p><p> delete from MedID</p><p> where MedKindeCode=@MedKindeCode</p><p> select*f
61、rom MedID</p><p> 4.8建立UPDATE觸發(fā)器 </p><p> create trigger MedID_update on MedID</p><p> for update</p><p><b> as</b></p><p> if update(
62、MedKindeCode)</p><p><b> begin</b></p><p> raiserror('you can not modify this column',16,1)</p><p> rollback transaction</p><p><b> end<
63、;/b></p><p><b> 五 數(shù)據(jù)庫系統(tǒng)程序</b></p><p> 醫(yī)藥銷售管理系統(tǒng)SQL語句,如下:</p><p> create database MedicalManagerSystem/*創(chuàng)建醫(yī)藥銷售管理系統(tǒng)*/</p><p> use MedicalManagerSystem&l
64、t;/p><p> create table MedID/*創(chuàng)建藥品類別索引信息*/</p><p> (MedKindeCode char(10) constraint MI_PRI PRIMARY KEY,</p><p> KindExplanation varchar(12) NOT NULL)</p><p> create t
65、able MedInfor/*創(chuàng)建藥品信息表*/</p><p> (MedicineCode char(6) constraint M_PRIM PRIMARY KEY,</p><p> MedicineName varchar(8) NOT NULL,</p><p> MedKindeCode char(10) FOREIGN KEY REFEREN
66、CES MedID(MedKindeCode),</p><p> Price Money,</p><p> ListPrice Money,</p><p> Number Int,</p><p> FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode),<
67、;/p><p> Userfulllife Datetime)</p><p> create table GueInfor/*創(chuàng)建客戶信息表*/</p><p> (GuestCode char(10) constraint G_PRIM PRIMARY KEY,</p><p> GuestName varchar(16) NOT N
68、ULl,</p><p> GLink varchar(12),</p><p> GLinkTell varchar(11),</p><p> City varchar(8))</p><p> create table FirmInfor/*創(chuàng)建供應(yīng)商信息表*/</p><p> (FirmCode c
69、har(10) constraint F_PRIM PRIMARY KEY,</p><p> FirmName varchar(16) NOT NULL,</p><p> Link varchar(12),</p><p> LinkTell varchar(11),</p><p> City varchar(8))</p
70、><p> create table WorkInfor/*創(chuàng)建員工信息表*/</p><p> (WorkNo char(10) constraint W_PRIM PRIMARY KEY,</p><p> Name varchar(12),</p><p> UserRegName char(6) NOT NULL,</p&g
71、t;<p> Password char(10) NOT NULL,</p><p> Position char(10),</p><p> Power Int) </p><p> create table sellMain/*創(chuàng)建醫(yī)藥銷售主表*/</p><p> (SaleNo int constraint S
72、M_PRIM PRIMARY KEY,</p><p> WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo),</p><p> SaleDate DateTime,</p><p> Amount Money)</p><p> create table sellChil
73、d/*創(chuàng)建醫(yī)藥銷售子表*/</p><p> (SaleNo int constraint SC_PRIM PRIMARY KEY,</p><p> MedicineCode char(6) FOREIGN KEY REFERENCES MedInfor(MedicineCode),</p><p> MedicineName varchar(32) NO
74、T NULL,</p><p> Price Money,</p><p> Number Int,</p><p> Uint char(8),</p><p> Amount Money)</p><p> /*插入數(shù)據(jù)的存儲過程 */</p><p> create proc
75、MedID_proc</p><p> @MedKindeCode char(10),@KindExplanation varchar(12)</p><p><b> as</b></p><p> insert into MedID (MedKindeCode,KindExplanation) values(@MedKindeCode
76、 ,@KindExplanation )</p><p> exec MedID_proc '0001','口腔潰瘍'</p><p> exec MedID_proc '0002','感冒'</p><p> exec MedID_proc '0003','發(fā)燒'
77、</p><p> exec MedID_proc '0004','拉肚子'</p><p> exec MedID_proc '0005' ,'外傷'</p><p> create proc MedInfor_proc</p><p> @MedicineCode c
78、har(6),@MedicineName varchar(8),@MedKindeCode char(10),@Price money,@ListPrice money,</p><p> @Number int,@FirmCode char(10),@Userfulllife Datetime</p><p><b> as</b></p>&l
79、t;p> insert into MedInfor(MedicineCode ,MedicineName,MedKindeCode,Price,ListPrice,</p><p> Number,Supplicer,Userfulllife) values(@MedicineCode,@MedicineName,@MedKindeCode,@Price,@ListPrice,</p>&
80、lt;p> @Number,@FirmCode,@Userfulllife)</p><p> exec MedInfor_proc '1001','板藍(lán)根','0002',5,3,'100','014','2010-12-5'</p><p> exec MedInfor_pro
81、c '2002','四季感康','0002',14,10.5,'150','051','2010-12-12'</p><p> exec MedInfor_proc '2003','銀黃顆粒','0002',12,8.8, '120 ','
82、014','2012-10-6'</p><p> exec MedInfor_proc '2004','感冒清熱軟膠囊','0002',17,12, '150','015', '2011-11-1'</p><p> exec MedInfor_proc
83、9;3001','阿斯匹林','0003',15,11,'100','014','2010-12-1'</p><p> exec MedInfor_proc '3002','布洛芬','0003',21,17.5,'120','051',
84、39;2010-6-5'</p><p> exec MedInfor_proc '4001','瀉利挺','0004',25,20,'120','015','2012-10-2'</p><p> exec MedInfor_proc '4002','諾
85、氟沙星膠囊','0004',15,12,'100','015','2012-9-16'</p><p> exec MedInfor_proc '5001','碘酒','0005',5,2.5,'50' ,'051','2012-10-12'&
86、lt;/p><p> exec MedInfor_proc '5002','創(chuàng)口貼','0005',2,1,'250','014','2015-5-1'</p><p> create proc GueInfor_proc</p><p> @GuestCode c
87、har(10),@GuestName varchar(16),@GLink varchar(12),@GLinkTell varchar(11),</p><p> @City varchar(8)</p><p><b> as</b></p><p> insert into GueInfor(GuestCode,GuestName,
88、GLink,GLinkTell,</p><p> City) values(@GuestCode,@GuestName,@GLink,@GLinkTell,@City)</p><p> exec GueInfor_proc '015112','zhangsan','xiaozhang','668401','ji
89、axing'</p><p> exec GueInfor_proc '065114','lisi','xiaofang','614425','yuyao'</p><p> exec GueInfor_proc '052114','wangwu','xiao
90、wu','659024','wenzhou'</p><p> exec GueInfor_proc '043115','zhaoliu','xiaowu','615874','shangyu'</p><p> exec GueInfor_proc '014
91、221','awu','xiaozhang','651283','linan'</p><p> exec GueInfor_proc '025471','asha','xiaofang','691472','dongyang'</p><p
92、> create proc FirmInfor_proc</p><p> @FirmCode char(10),@FirmName varchar(16),@Link varchar(12),@LinkTell varchar(11),@City varchar(8)</p><p><b> as</b></p><p> i
93、nsert into FirmInfor(FirmCode,FirmName,Link,LinkTell,City)</p><p> values(@FirmCode,@FirmName,@Link,@LinkTell,@City)</p><p> exec FirmInfor_proc '015','yangshengtang','xiao
94、tai','681472','huzhou'</p><p> exec FirmInfor_proc '014','baozhilin','zhangqing','658421','deqing'</p><p> exec FirmInfor_proc '
95、051','pinmingdayaofang','oudan','65417','xiangshan'</p><p> create proc WorkInfor_proc</p><p> @WorkNo char(10),@Name varchar(12),@UserRegName char(6),@Pass
96、word char(10),@Position char(10),@Power Int</p><p><b> as</b></p><p> insert into WorkInfor(WorkNo,Name,UserRegName,Password,Position,Power)</p><p> values(@WorkNo,@N
97、ame,@UserRegName,@Password,@Position,@Power)</p><p> exec WorkInfor_proc '075101','ZKL','zkl01','456789','jingli',''</p><p> exec WorkInfor_proc
98、 '075201','ZJM','zjm01','123789','dongshi',''</p><p> exec WorkInfor_proc '075215','WMX','wmx05','147258','xiaomi',
99、9;'</p><p> exec WorkInfor_proc '075120','ZZW','zzm20','123456','buzhang',''</p><p> create proc sellMain_proc</p><p> @SaleNo
100、 int,@WorkNo char(10),@SaleDate DateTime,@Amount Money</p><p><b> as</b></p><p> insert into sellMain(SaleNo,WorkNo,SaleDate,Amount)</p><p> values(@SaleNo,@WorkNo,@S
101、aleDate,@Amount)</p><p> exec sellMain_proc '12','075101','2009-1-1',1000</p><p> exec sellMain_proc '13','075201','2009-1-1',1500</p>&l
102、t;p> exec sellMain_proc '15','075215','2009-1-1',800</p><p> exec sellMain_proc '20','075120','2009-1-1',1200</p><p> alter proc sellChild_p
103、roc</p><p> @SaleNo int,@MedicineCode char(6),@MedicineName varchar(32),@Price Money,@Number Int,@Uint char(8),@Amount Money</p><p><b> as</b></p><p> insert into sel
104、lChild(SaleNo,MedicineCode,MedicineName,Price,Number,Uint,Amount)</p><p> values(@SaleNo,@MedicineCode,@MedicineName,@Price,@Number,@Uint,@Amount)</p><p> exec sellChild_proc '13','
105、;1001','板藍(lán)根',5,'20','bao',100</p><p> exec sellChild_proc '15','2002','四季感康',14,'15','he',210</p><p> exec sellChild_proc
106、39;20','3001','阿斯匹林',15,'20','he',300</p><p> /*刪除數(shù)據(jù)的存儲過程*/ </p><p> create proc MedID_delete_proc</p><p> @MedKindeCode char(10)</p>&
107、lt;p><b> as</b></p><p> delete from MedId </p><p> where MedKindeCode=@MedKindeCode</p><p> exec MedID_delete_proc '0002'</p><p> create pro
108、c MedInfor_delete_proc</p><p> @MedicineName varchar(8)</p><p><b> as</b></p><p> delete from MedInfor</p><p> where MedicineName=@MedicineName</p>
109、;<p> create proc GueInfor_delete_proc</p><p> @GuestCode char(10) </p><p><b> as</b></p><p> delete from GueInfor</p><p> where GuestCode=@Gues
110、tCode</p><p> create proc FirmInfor_delete_proc</p><p> @FirmCode char(10)</p><p><b> as</b></p><p> delete from FirmInfor</p><p> where F
111、irmCode=@FirmCode</p><p> create proc WorkInfor_delete_proc</p><p> @WorkNo char(10)</p><p><b> as</b></p><p> delete from WorkInfor</p><p>
112、; where WorkNo=@WorkNo</p><p> create proc sellMain_delete_proc</p><p> @SaleNo int</p><p><b> as</b></p><p> delete from sellMain</p><p>
113、 where SaleNo=@SaleNo</p><p> create proc sellChild_delete_proc</p><p> @SaleNo int</p><p><b> as</b></p><p> delete from sellChild</p><p>
114、; where SaleNo=@SaleNo</p><p> /*修改數(shù)據(jù)的存儲過程*/ </p><p> create proc MedID_update_proc</p><p> @MedKindeCode char(10),@KindExplanation varchar(12),@MedKindeCode1 char(10)</p>
115、<p><b> as</b></p><p> update MedID </p><p> set MedKindeCode=@MedKindeCode,KindExplanation=@KindExplanation</p><p> where MedKindeCode=@MedKindeCode1</p&
116、gt;<p> exec MedID_update_proc '0002','感冒','0001'</p><p> create proc MedInfor_update_proc</p><p> @MedicineCode1 char(6),@MedicineName varchar(8),@MedKindeCode
117、 char(10),@Price money,@ListPrice money,</p><p> @Number int,@FirmCode char(10),@Userfulllife Datetime,@MedicineCode char(6)</p><p><b> as</b></p><p> update MedInfo
118、r</p><p> set MedicineCode=@MedicineCode1,MedicineName=@MedicineName,MedKindeCode=@MedKindeCode,Price=@Price,</p><p> ListPrice=@ListPrice,Number=@Number,FirmCode=@FirmCode,Userfulllife=@Userf
119、ulllife,MedicineCode=@MedicineCode</p><p> where MedKindeCode=@MedKindeCode </p><p> create proc GueInfor_update_proc</p><p> @GuestCode1 char(10),@GuestName varchar(16),@GLink
120、varchar(12),@GLinkTell varchar(11),</p><p> @City varchar(8),@GuestCode char(10)</p><p><b> as</b></p><p> update GueInfor</p><p> set GuestCode=@GuestC
121、ode1,GuestName=@GuestName,GLink=@GLink,GLinkTell=@GLinkTell,</p><p> City=@City</p><p> where GuestCode=@GuestCode</p><p> create proc FirmInfor_update_proc</p><p>
122、 @FirmCode1 char(10),@FirmName varchar(16),@Link varchar(12),@LinkTell varchar(11),@City varchar(8),</p><p> @FirmCode char(10)</p><p><b> as</b></p><p> update Firm
123、Infor</p><p> set FirmCode=@FirmCode1,FirmName=@FirmName,Link=@Link,LinkTell=@LinkTell,City=@City</p><p> where FirmCode=@FirmCode</p><p> create proc WorkInfor_update_proc</p
124、><p> @WorkNo1 char(10),@Name varchar(12),@UserRegName char(6),@Password char(10),@Position char(10),@Power Int,</p><p> @WorkNo char(10)</p><p><b> as</b></p>&l
125、t;p> update WorkInfor</p><p> set WorkNo=@WorkNo1,Name=@Name,UserRegName=@UserRegName,Password=@Password,Position=@Position,Power=@Power</p><p> where WorkNo=@WorkNo</p><p>
126、create proc sellMain_update_proc</p><p> @SaleNo1 int,@WorkNo char(10),@SaleDate DateTime,@Amount Money,@SaleNo int</p><p><b> as</b></p><p> update sellMain</p>
127、;<p> set SaleNo=@SaleNo1,WorkNo=@WorkNo,SaleDate=@SaleDate,Amount=@Amount</p><p> where SaleNo=@SaleNo</p><p> create proc sellChild_update_proc</p><p> @SaleNo1 int,@Me
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)---醫(yī)藥銷售管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-醫(yī)藥銷售管理系統(tǒng)
- 醫(yī)藥銷售管理數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)---醫(yī)藥銷售系統(tǒng)
- 醫(yī)藥銷售管理數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫醫(yī)藥銷售管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- (數(shù)據(jù)庫課程設(shè)計(jì))醫(yī)藥銷售管理系統(tǒng)畢業(yè)設(shè)
- 數(shù)據(jù)庫課程設(shè)計(jì)--- 銷售管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--銷售管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)論文---汽車銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 圖書銷售管理系統(tǒng)--數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)汽車銷售管理系統(tǒng)
- 圖書銷售管理系統(tǒng)(數(shù)據(jù)庫課程設(shè)計(jì))
- 數(shù)據(jù)庫課程設(shè)計(jì)--圖書銷售管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--藥店銷售管理系統(tǒng)
- 手機(jī)銷售管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 大型數(shù)據(jù)庫課程設(shè)計(jì)---銷售管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--藥品銷售管理系統(tǒng)
- 圖書銷售管理系統(tǒng)--數(shù)據(jù)庫課程設(shè)計(jì)
- 企業(yè)銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)課程設(shè)計(jì)
評論
0/150
提交評論