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