黃子豪,張舒,馬兆婷
(山東科技大學(xué),山東濟(jì)南,250031)
一直以來(lái),大眾訂閱報(bào)刊都是沿用傳統(tǒng)人工的方式進(jìn)行管理報(bào)刊的訂閱,這種傳統(tǒng)的人工管理方法存在著很多缺點(diǎn),比如,效率太低,保密性差,且隨著訂閱周期的變化及訂閱人數(shù)的增加,將產(chǎn)生的大量的訂閱記錄和無(wú)用的數(shù)據(jù)文件,對(duì)于管理員進(jìn)行歸類整理等操作時(shí)很不友好,并且對(duì)于報(bào)刊訂閱信息的查找、更新和維護(hù)都帶來(lái)了不少的難題。本系統(tǒng)的開(kāi)發(fā)目的就是為解決人工管理報(bào)刊訂閱的效率低下等問(wèn)題,通過(guò)對(duì)數(shù)據(jù)庫(kù)的操作實(shí)現(xiàn)智能化的管理報(bào)刊訂閱等問(wèn)題。
(1)開(kāi)發(fā)語(yǔ)言: JAVA;
(2)開(kāi)發(fā)工具: Eclipse 2020-06、SQL SERVER 2014數(shù)據(jù)庫(kù);
(3)操作系統(tǒng): Windows 10;
(4)數(shù)據(jù)庫(kù)版本: SQL SERVER 2014。
(1)管理員表:Login(UName,UPassw ord)其中(UName, UPassword)為主碼。
(2)用戶表:Customer(Cid,Cname,Phone,Address)中Cid為 主 碼,Cid,Cname,Phone,Address約束為非空。
(3)報(bào) 刊 表:Diretory(Did,Dn ame,UnitPrice,Ifo)中Did為 主碼,Dname,UnitPrice,Ifo約束為非空。
(4)訂單表:OrderDetail(Ono,Did,C id,Quantity,Qishu,UnitPrice,Total,Oda te) 其中(Ono,Did)為主碼,Cid和Did分別為外碼(參照分別為Customer(Cid)和Diretory(Did)),Quantity,Qishu,UnitPric e,Total,Odate約束為非空。
(1)主界面:該界面為管理員登錄模塊,管理員可通過(guò)本界面驗(yàn)證登錄報(bào)刊訂閱管理系統(tǒng);
(2)報(bào)刊管理模塊:該模塊負(fù)責(zé)展示目錄中的報(bào)刊信息,可實(shí)現(xiàn)報(bào)刊信息的增加、刪除、修改、查詢(按報(bào)刊編號(hào)或報(bào)刊名稱查詢)等功能,用戶可通過(guò)此模塊查看報(bào)刊的報(bào)刊編號(hào)、報(bào)刊名稱、報(bào)刊單價(jià)、季度訂價(jià)、備注信息等信息;
(3)訂單管理模塊:該模塊負(fù)責(zé)展示已存在的用戶訂單信息和訂單統(tǒng)計(jì),具體功能可實(shí)現(xiàn)訂單信息的增加、刪除、修改、查詢(可按訂單編號(hào)查詢)等功能,用戶可通過(guò)此模塊查看訂單的編號(hào)、報(bào)刊編號(hào)、用戶編號(hào)、訂閱數(shù)量、訂閱期數(shù)、報(bào)刊單價(jià)、訂單總價(jià)、訂單日期等信息;
(4)用戶管理模塊:該模塊負(fù)責(zé)展示用戶的基本資料信息,包括用戶編號(hào)、用戶姓名、用戶地址、用戶電話等,管理員可實(shí)現(xiàn)對(duì)用戶信息的增加、刪除、修改、查詢(可按用戶編號(hào)或用戶姓名查詢)等操作;
圖1 數(shù)據(jù)庫(kù)設(shè)計(jì)E-R圖
(5)管理員賬號(hào)模塊:該模塊可實(shí)現(xiàn)增加和刪除管理員的功能,在進(jìn)行操作前需輸入管理員賬號(hào)及密碼驗(yàn)證管理員身份,驗(yàn)證成功即可進(jìn)行操作;
(6)系統(tǒng)模塊:負(fù)責(zé)介紹本系統(tǒng),用于后期系統(tǒng)的推廣和維護(hù)。
系統(tǒng)功能結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)功能結(jié)構(gòu)圖
(1)登錄模塊設(shè)計(jì):用戶通過(guò)數(shù)據(jù)庫(kù)連接,對(duì)管理員賬號(hào)和密碼進(jìn)行身份驗(yàn)證,驗(yàn)證成功后方可進(jìn)入報(bào)刊訂閱管理系統(tǒng)主界面。
(2)主界面設(shè)計(jì):管理員驗(yàn)證成功后可進(jìn)入報(bào)刊訂閱管理系統(tǒng)主界面,此時(shí)可查看菜單欄上分布著各項(xiàng)管理功能包括報(bào)刊管理模塊、訂單管理模塊、用戶管理模塊、賬號(hào)管理模塊、系統(tǒng)模塊;用戶可根據(jù)自身需要選擇具體操作的模塊。
(3)報(bào)刊管理界面:進(jìn)入報(bào)刊管理界面后可以看到界面上方的五個(gè)模塊,分別是添加報(bào)刊、刪除報(bào)刊、修改報(bào)刊、按名字查詢報(bào)刊、按編號(hào)查詢報(bào)刊。同時(shí)在下方會(huì)顯示目前所有報(bào)刊的信息(報(bào)刊編號(hào)、報(bào)刊名字、報(bào)刊單價(jià)、備注信息等),管理員可在對(duì)報(bào)刊信息進(jìn)行操作后在下方信息展示欄中查看更新后的報(bào)刊信息。管理員在添加報(bào)刊時(shí)需輸入報(bào)刊編號(hào)、報(bào)刊名字、報(bào)刊單價(jià)、備注信息,數(shù)據(jù)庫(kù)會(huì)根據(jù)輸入信息對(duì)已存在的信息進(jìn)行判重,如果重復(fù)則插入失敗,否則插入成功;在刪除報(bào)刊時(shí)需輸入所要?jiǎng)h除報(bào)刊的編號(hào)首先進(jìn)行查詢?cè)搱?bào)刊是否存在,如果該報(bào)刊存在則可進(jìn)行刪除操作,否則無(wú)法刪除;在修改報(bào)刊時(shí)也需要輸入報(bào)刊編號(hào)進(jìn)行判斷該報(bào)刊是否存在,如果存在則可以修改該報(bào)刊的信息,否則修改失敗;查詢報(bào)刊功能分為兩部分,可以根據(jù)報(bào)刊名字查詢,如果報(bào)刊存在則可以看到該報(bào)刊的所有信息,也可以根據(jù)報(bào)刊編號(hào)進(jìn)行查詢。
(4)訂單管理界面:進(jìn)入訂單管理界面后可以看到界面上方的五個(gè)模塊,分別是添加訂單、刪除訂單、修改訂單、按訂單編號(hào)查詢訂單,同時(shí)在下方會(huì)顯示目前所有訂單的信息(訂單編號(hào)、報(bào)刊編號(hào)、用戶編號(hào)、訂閱數(shù)量、訂閱期數(shù)、單價(jià)、總價(jià)、下訂日期)。管理員在添加訂單信息時(shí)需輸入相關(guān)訂單信息,數(shù)據(jù)庫(kù)會(huì)對(duì)訂單信息進(jìn)行判重,如果重復(fù)則插入失敗,否則插入成功;在刪除訂單信息時(shí)需輸入訂單編號(hào)查詢?cè)撚唵问欠翊嬖?如果不存在則無(wú)法刪除,修改功能同理;訂單查詢功能也需輸入訂單編號(hào)進(jìn)行查詢,如果訂單存在則會(huì)顯示訂單所有信息。
(5)管理員界面:展示管理員基本信息,可實(shí)現(xiàn)增加和刪除管理員的功能,在增加或刪除管理員的時(shí)候都需輸入管理員賬號(hào)及密碼進(jìn)行驗(yàn)證。
(6)系統(tǒng)管理界面:介紹本系統(tǒng)基本功能。
(7)退出系統(tǒng): 當(dāng)前用戶可手動(dòng)點(diǎn)擊退出按鈕來(lái)安全退出系統(tǒng)同時(shí)系統(tǒng)將自動(dòng)保存本次登錄更新的所有信息。
(1)創(chuàng)建視圖:輸入用戶姓名,可以查詢?cè)撔彰鶎?duì)應(yīng)的成員的訂閱日期、姓名、地址、訂閱的報(bào)刊名。
CREATE VIEW views
AS SELECT
Customer.Address,OrderDetail.Odate,Diretory.Dname,Customer.Cname
FROM Customer,Diretory,OrderDetail
WHERE OrderDetail.Did=Diretory.Did AND
Customer.Cid=OrderDetail.Cid ;
(2)創(chuàng)建存儲(chǔ)過(guò)程pro2:功能是向Diretory表添加一條記錄,該記錄各字段的值是在執(zhí)行存儲(chǔ)過(guò)程時(shí)給出的相應(yīng)參數(shù)值。
USE magazine
CREATE PROCEDURE [pro2]
(@Did [Varchar](10),
@Dname [Varchar](20),
@UnitPrice [Float](8),
@Ifo [Varchar](50))
AS INSERT INTO Diretory(Did,Dname,UnitPrice,Ifo)
( @Did, @Dname, @UnitPrice, @Ifo)
GO
(3)創(chuàng)建DELETED觸發(fā)器:當(dāng)從表中刪除報(bào)刊信息時(shí),檢查status屬性的狀態(tài),如果為“1”則不允許刪除,否則可以刪除。
CREATE TRIGGER Delete_Diretory
ON Diretory
FOR DELETE
AS
DECLARE @status bit
為了更好地檢驗(yàn)浙江省對(duì)外直接投資對(duì)出口貿(mào)易和進(jìn)口貿(mào)易的不同影響,本文建立如下出口效應(yīng)模型和進(jìn)口效應(yīng)模型:
SELECT @status = statu FROM deleted
IF @status = 1
BEGIN
RAISERROR(‘該報(bào)刊信息不允許刪除!’,16,1)
ROLLBACK TRANSACTION
END
ELSE
RAISERROR(‘成功刪除!’,16,1)
GO
(4)創(chuàng)建帶返回值的存儲(chǔ)過(guò)程進(jìn)行查詢:創(chuàng)建一個(gè)帶有1個(gè)輸入?yún)?shù)、3個(gè)返回值的存儲(chǔ)過(guò)程return 1,其功能是:接受外部傳入的成員號(hào)Cid,在數(shù)據(jù)表Customer中查找成員信息,然后輸出成員的的姓名、電話和地址。
USE magazine
CREATE PROCEDURE return1
(@Cid Varchar(10),
@Cname Varchar(20) OUTPUT,
@Phone Varchar(15) OUTPUT,
@Address Varchar(50) OUTPUT )
AS
SELECT @Cname=Cname,
@Phone = Phone,
@Address=Address
FROM Customer
WHERE Cid=@Cid
(5)使用T-SQL創(chuàng)建一個(gè)帶有輸入?yún)?shù),并使用集聚函數(shù)的存儲(chǔ)過(guò)程進(jìn)行查詢。
創(chuàng)建存儲(chǔ)過(guò)程,分別查詢訂閱n種報(bào)刊的人員名單,要求顯示姓名。其中,n作為輸入?yún)?shù)在執(zhí)行系統(tǒng)存儲(chǔ)過(guò)程時(shí)給出。
USE magazine
CREATE PROCEDURE P_Customer
@num int
AS
PRINT '訂 閱 '+convert(varchar(5),@num)+'種 報(bào) 刊的成員姓名:'
SELECT 姓名=(select Cname from Customer where Cid=OrderDetail.Cid)
from OrderDetail
GROUP BY Cid HAVING COUNT(*)=@num
測(cè)試存儲(chǔ)過(guò)程: EXEC P_Customer @num=1
(1)為確保后期軟件的實(shí)用性及可維護(hù)性,本系統(tǒng)在編寫(xiě)代碼時(shí)嚴(yán)格按照框架進(jìn)行標(biāo)準(zhǔn)化設(shè)計(jì),代碼模式一致性較強(qiáng)。
(2)在建立數(shù)據(jù)庫(kù)時(shí)嚴(yán)格考慮各表之間的關(guān)聯(lián),建立合理的索引結(jié)構(gòu)和外鍵約束,刪除不必要的代碼冗余部分,實(shí)現(xiàn)數(shù)據(jù)庫(kù)管理的規(guī)范化、科學(xué)化。
(3)界面友好簡(jiǎn)單,功能方便實(shí)用,對(duì)于管理員來(lái)說(shuō)易上手,真正提高管理的效率。
(1)數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)實(shí)體的屬性數(shù)量不夠多,系統(tǒng)操作有局限性。
(2)各表之間建立的外鍵約束不夠多,建立的索引數(shù)量較少,組合查詢功能少。
(3)在連接數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),事務(wù)處理的操作較少,易造成數(shù)據(jù)操作失誤。
(4)系統(tǒng)在登錄界面并未為普通用戶設(shè)置登錄接口,因此普通用戶無(wú)法自行登錄系統(tǒng)查詢信息,這雖然保護(hù)了系統(tǒng)的安全性和統(tǒng)一性,但缺少了用戶自行查詢和訂閱的模塊,損失了系統(tǒng)的普及性,有利有弊。
本系統(tǒng)是基于JAVA和SQL2014開(kāi)發(fā)的新型報(bào)刊訂閱管理系統(tǒng),該系統(tǒng)為管理員提供了報(bào)刊管理、訂單管理、用戶管理、賬號(hào)管理等功能,通過(guò)SQL SERVER 2014數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的操作和存儲(chǔ),極大地便利了管理員對(duì)于報(bào)刊訂閱的管理,界面友好實(shí)用,提高了報(bào)刊訂閱管理的效率。