快递数据库.docx
《快递数据库.docx》由会员分享,可在线阅读,更多相关《快递数据库.docx(19页珍藏版)》请在冰豆网上搜索。
快递数据库
快递管理系统数据库
系统名称:
EXPRESS
1、需求分析:
快递管理系统是为制造商和零售商设计的管理系统数据库系统,目的是:
1)、实现快递公司员工的信息管理。
2)、实现收货人的信息管理。
3)、实现进库与配送的信息管理。
从而提高快递效率,降低快递公司成本并提高企业管理化水平。
经过调研分析,得到系统的如下功能需求。
(1)数据检索
1、查询客户表(CUSTOMER)客户姓名及各种信息
输入:
CNAME
输出:
CNO,CNAME,CSEX,CTEL,CADDS,CCARD
2、查询员工表(STAFF)员工姓名及各种信息
输入:
SNAME
输出:
SNAME,SNO,SSEX,STEL,SADDS,SCARD,JOB
3、查询商品表(GOODS)中的商品名及各种信息
输入:
GNAME
输出:
GNAME,GNO,GTYPE,GWEIGHT
4、查询仓库表(STOREHOUSE)中的各种信息
输入:
SHNO
输出:
SHNAME,SHNO,SHVOLUME
5、查询收货人表(RECEIVER)中的各种信息
输入:
RNAME
输出:
RNAME,RNO,RSEX,RTEL,RADDS
6、查询货单表(LIST)中的各种信息
输入:
LNAME
输出:
LNO,LNAME,LPRICE
7、查询存储表(MEMORY)中的各种信息
输入:
MNO
输出:
MNO,MITIME,MINUMBER,MOTIME,MONUMBER
8、查询配送表(SEND)中的各种信息
输入:
SENO
输出:
SENO,SITIME,SOTIME,SETYPE,SENAME
(2)数据插入
各表中数据的插入
(3)数据修改
各表中数据的修改
2、概念分析:
经需求分析,抽象出以下E-R模型
1)客户表实体
2)员工表实体
3)商品表实体
4)仓库表实体
5)收货人实体
6)货单实体
7)存储实体
8)配送实体
3、逻辑设计:
CUSTOMER(CNO,CNAME,CSEX,CTEL,CADDS,CCARD);
STAFF(SNO,SNAME,SSEX,STEL,SADDA,SCARD,JOB);
GOODS(GNO,GNAME,GTYPE,GWEIGHT);
STOREHOUSE(SHNO,SHNAME,SHVOLUMER);
RECEIVER(RNO,RNAME,RSEX,RTEL,RADDS);
LIST(LNO,LNAME,LPRICE,RNO,CNO,SNO,GNO);
MEMORY(MNO,MITIME,MINUMBER,MOTIME,MONUMBER,SNO,SHNO,GNO);
SEND(SENO,RNO,SNO,SHNO,SITIME,SOTIME,SETYPE,SENAME);
4、物理设计:
(1)客户表(CUSTOMER)结构
列名
类型
特殊属性
CNO
INT
PRIMARYKEY
CNAME
VARCHAR(20)
NOTNULL
CSEX
VARCHAR(8)
NOTNULL
CTEL
VARCHAR(20)
NOTNULL
CADDS
VARCHAR(50)
NOTNULL
CCARD
VARCHAR(20)
NOTNULL
(2)员工表(STAFF)结构
列名
类型
特殊属性
SNO
INT
PRIMARYKEY
SNAME
VARCHAR(20)
NOTNULL
SSEX
VARCHAR(8)
NOTNULL
STEL
VARCHAR(20)
NOTNULL
SADDS
VARCHAR(50)
NOTNULL
SCARD
VARCHAR(20)
NOTNULL
JOB
VARCHAR(20)
NOTNULL
(3)商品表(GOODS)结构
列名
类型
特殊属性
GNO
INT
PRIMARYKEY
GNAME
VARCHAR(20)
NOTNULL
GTYPE
VARCHAR(40)
NOTNULL
GWEIGHT
VARCHAR(20)
NOTNULL
(4)仓库表(STOREHOUSE)结构
列名
类型
特殊属性
SHNO
INT
PRIMARYKEY
SHNAME
VARCHAR(20)
NOTNULL
NOTNULL
SHVOLUME
VARCHAR(10)
NOTNULL
(5)收货人(RECEIVER)结构
列名
类型
特殊属性
RNO
INT
PRIMARYKEY
RNAME
VARCHAR(20)
NOTNULL
RSEX
VARCHAR(8)
NOTNULL
CTEL
VARCHAR(20)
NOTNULL
CADDS
VARCHAR(50)
NOTNULL
(6)货单表(LIST)结构
列名
类型
特殊属性
LNO
INT
PRIMARYKEY
LNAME
VARCHAR(20)
NOTNULL
LPRICE
INT
NOTNULL
RNO
INT
FOREIGNKEY
CNO
INT
FOREIGNKEY
SNO
INT
FOREIGNKEY
GNO
INT
FOREIGNKEY
(7)存储表(MEMORY)结构
列名
类型
特殊属性
MNO
INT
PRIMARYKEY
MITIME
DATETIME
NOTNULL
MINUMBER
INT
NOTNULL
MOTIME
DATETIME
NOTNULL
MONUMBER
INT
NOTNULL
SNO
INT
FOREIGNKEY
SHNO
INT
FOREIGNKEY
GNO
INT
FOREIGNKEY
(8)配送表(SEND)结构
列名
类型
特殊属性
SENO
INT
PRIMARYKEY
RNO
INT
FOREIGNKEY
SNO
INT
FOREIGNKEY
SHNO
INT
FOREIGNKEY
SITIME
DATETIME
NOTNULL
SOTIME
DATETIME
NOTNULL
SETYPE
VARCHAR(20)
NOTNULL
SENAME
VARCHAR(20)
NOTNULL
5、实施:
/*创建数据库EXPRESS(快递)*/
createdatabaseEXPRESS
onprimary(
name=EXPRESS,
filename='D:
\EXPRESS\DATA\EXPRESS.MDF',
size=20,
maxsize=unlimited,
filegrowth=10%
)
logon(
name=EXPRESS_LOG,
filename='D:
\EXPRESS\DATA\EXPRESS.LDF',
size=2,
maxsize=10,
filegrowth=1
)
Go
/*创建表CUSTOMER(客户)*/
createtableCUSTOMER(
CNOINTprimarykey,
CNAMEVARCHAR(20)NOTNULL,
CSEXVARCHAR(8)NOTNULL,
CTELVARCHAR(20)NOTNULL,
CADDSVARCHAR(50)NOTNULL,
CCARDVARCHAR(20)NOTNULL
);
/*创建表STAFF(员工)*/
createtableSTAFF(
SNOINTprimarykey,
SNAMEVARCHAR(20)NOTNULL,
SSEXVARCHAR(8)NOTNULL,
STELVARCHAR(20)NOTNULL,
SADDSVARCHAR(50)NOTNULL,
SCARDVARCHAR(20)NOTNULL,
JOBVARCHAR(20)NOTNULL
);
/*创建表GOODS(货物)*/
createtableGOODS(
GNOINTprimarykey,
GNAMEVARCHAR(20)NOTNULL,
GTYPEVARCHAR(40)NOTNULL,
GWEIGHTVARCHAR(20)NOTNULL
);
/*创建表STOREHOUSE(仓库)*/
createtableSTOREHOUSE(
SHNOINTprimarykey,
SHNAMEVARCHAR(20)NOTNULL,
SHVOLUMEVARCHAR(10)NOTNULL/*容量*/
);
/*创建表RECEIVER(收货人)*/
createtableRECEIVER(
RNOINTprimarykey,
RNAMEVARCHAR(20)NOTNULL,
RSEXVARCHAR(8)NOTNULL,
RTELVARCHAR(20)NOTNULL,
RADDSVARCHAR(50)NOTNULL
);
/*创建表LIST(货单)*/
createtableLIST(
LNOINTprimarykey,
LNAMEVARCHAR(20)NOTNULL,
LPRICEVARCHAR(20)NOTNULL,
RNOINTNOTNULL,
CNOINTNOTNULL,
SNOINTNOTNULL,
GNOINTNOTNULL,
FOREIGNKEY(RNO)REFERENCESRECEIVER(RNO),
FOREIGNKEY(CNO)REFERENCESCUSTOMER(CNO),
FOREIGNKEY(SNO)REFERENCESSTAFF(SNO),
FOREIGNKEY(GNO)REFERENCESGOODS(GNO)
);
/*创建表MEMORY(存储)*/
createtableMEMORY(
MNOINTprimarykey,
MITIMEDATETIMENOTNULL,
MINUMBERVARCHAR(20)NOTNULL,
MOTIMEDATETIMENOTNULL,
MONUMBERVARCHAR(20)NOTNULL,
SNOINTNOTNULL,
SHNOINTNOTNULL,
GNOINTNOTNULL,
FOREIGNKEY(SNO)REFERENCESSTAFF(SNO),
FOREIGNKEY(SHNO)REFERENCESSTOREHOUSE(SHNO),
FOREIGNKEY(GNO)REFERENCESGOODS(GNO)
);
/*创建表SEND(配送)*/
createtableSEND(
SENOINTprimarykey,
RNOINTNOTNULL,
SNOINTNOTNULL,
SHNOINTNOTNULL,
SITIMEDATETIMENOTNULL,
SOTIMEDATETIMENOTNULL,
SETYPEVARCHAR(20)NOTNULL,
SENAMEVARCHAR(20)NOTNULL,
FOREIGNKEY(RNO)REFERENCESRECEIVER(RNO),
FOREIGNKEY(SNO)REFERENCESSTAFF(SNO),
FOREIGNKEY(SHNO)REFERENCESSTOREHOUSE(SHNO)
);
/*修改表结构*/
ALTERTABLESTOREHOUSE
ALTERCOLUMNSHVOLUMEINT;
ALTERTABLELIST
ALTERCOLUMNLPRICEINT;
ALTERTABLEMEMORY
ALTERCOLUMNMINUMBERINT;
ALTERTABLEMEMORY
ALTERCOLUMNMONUMBERINT;
插入数据:
INSERTINTOCUSTOMERVALUES(001,'赵源源','女','11111111111','河北省邯郸市','111111111111111111');
INSERTINTOCUSTOMERVALUES(002,'林一','男','22222222222','河北省石家庄','222222222222222222');
INSERTINTOCUSTOMERVALUES(003,'林依依','女','22222222222','河北省石家庄','222222222222222222');
INSERTINTOSTAFFVALUES(101,'孙浩哲','男','66666666666','河北省邯郸市','666666666666666666','经理');
INSERTINTOSTAFFVALUES(102,'徐昊泽','男','77777777777','河北省邯郸市','777777777777777777','快递员');
INSERTINTOSTAFFVALUES(103,'陈诗淇','女','88888888888','河北省邯郸市','888888888888888888','快递员');
INSERTINTOGOODSVALUES(00011,'羽绒服','服装','1kg');
INSERTINTOGOODSVALUES(00012,'针织衫','服装','1.5kg');
INSERTINTOGOODSVALUES(00021,'iPhone6','手机','0.129kg');
INSERTINTOSTOREHOUSEVALUES(1101,'邯郸',1000);
INSERTINTOSTOREHOUSEVALUES(1201,'石家庄',1000);
INSERTINTORECEIVERVALUES(00001,'李岳凌','男','33333333333','河北省邯郸市');
INSERTINTORECEIVERVALUES(00002,'张凯华','男','44444444444','河北省邯郸市');
INSERTINTOLISTVALUES(222201,'货单',12,00001,001,102,00011);
INSERTINTOLISTVALUES(222202,'货单',15,00002,002,103,00021);
INSERTINTOMEMORYVALUES(333301,2005/01/10,1,2005/02/21,1,102,1101,00011);
INSERTINTOSENDVALUES(666601,00001,102,1101,2005/01/12,2005/02/22,'航空','航运');
/*创建索引*/
CREATEINDEXIX_CUSTOMERONCUSTOMER(CNO);
EXECsp_helpindexCUSTOMER
CREATEINDEXIX_STAFFONSTAFF(SNO);
EXECsp_helpindexSTAFF
CREATEINDEXIX_GOODSONGOODS(GNO);
EXECsp_helpindexGOODS
CREATEINDEXIX_STOREHOUSEONSTOREHOUSE(SHNO);
EXECsp_helpindexSTOREHOUSE
CREATEINDEXIX_RECEIVERONRECEIVER(RNO);
EXECsp_helpindexRECEIVER
CREATEINDEXIX_LISTONLIST(LNO);
EXECsp_helpindexLIST
CREATEINDEXIX_MEMORYONMEMORY(MNO);
EXECsp_helpindexMEMORY
CREATEUNIQUENONCLUSTEREDINDEXIX_SENDONSEND(SOTIMEDESC);
EXECsp_helpindexSEND
/*创建视图*/
CREATEVIEWVW_CUSTOMERAS
SELECTCNO,CNAME,CSEX,CTEL,CADDS,CCARDFROMCUSTOMERWHERECNO=001;
CREATEVIEWVW_STAFFAS
SELECTSNO,SNAME,SSEX,STEL,SADDS,SCARD,JOBFROMSTAFFWHERESNO=101;
CREATEVIEWVW_RECEIVERAS
SELECTRNO,RNAME,RSEX,RTELFROMRECEIVERWHERERNO=00001;
CREATEVIEWVW_LISTAS
SELECTLIST.LNAME,LIST.LPRICE,RECEIVER.RNAME,GNOFROMLIST,RECEIVERWHERELNO=222201ANDLIST.RNO=RECEIVER.RNO;
/*创建存储过程*/
CREATEPROCEDUREPROC_CUSTOMER
@CNAMEVARCHAR(20)
WITHENCRYPTION
ASSELECTCNO,CNAME,CSEX,CTEL,CADDS,CCARD
FROMCUSTOMER
WHERECNAMELIKE@CNAME;
EXECPROC_CUSTOMER@CNAME=N'林一'
CREATEPROCEDUREPROC_STAFF
@SNAMEVARCHAR(20)
WITHENCRYPTION
ASSELECTSNAME,SNO,SSEX,STEL,SADDS,SCARD,JOB
FROMSTAFF
WHERESNAMELIKE@SNAME;
EXECPROC_STAFF@SNAME=N'孙浩哲'
CREATEPROCEDUREPROC_GOODS
@GNAMEVARCHAR(20)
WITHENCRYPTION
ASSELECTGNAME,GNO,GTYPE,GWEIGHT
FROMGOODS
WHEREGNAMELIKE@GNAME;
EXECPROC_GOODS@GNAME=N'羽绒服'
CREATEPROCEDUREPROC_STOREHOUSE
@SHNAMEVARCHAR(20)
WITHENCRYPTION
ASSELECTSHNAME,SHNO,SHVOLUME
FROMSTOREHOUSE
WHERESHNAMELIKE@SHNAME;
EXECPROC_STOREHOUSE@SHNAME=N'邯郸1'
CREATEPROCEDUREPROC_RECEIVER
@RNAMEVARCHAR(20)
WITHENCRYPTION
ASSELECTRNAME,RNO,RSEX,RTEL,RADDS
FROMRECEIVER
WHERERNAMELIKE@RNAME;
EXECPROC_RECEIVER@RNAME=N'李岳凌'
CREATEPROCEDUREPROC_LISTASSELECTLNO,LNAME,LPRICEFROMLIST;
EXECPROC_LIST
CREATEPROCEDUREPROC_MEMORY
@MNOINT
WITHENCRYPTION
ASSELECTMNO,MITIME,MINUMBER,MOTIME,MONUMBER
FROMMEMORY
WHEREMNOLIKE@MNO;
EXECPROC_MEMORY@MNO=333301
CREATEPROCEDUREPROC_SEND
@SENOINT
WITHENCRYPTION
ASSELECTSENO,SITIME,SOTIME,SETYPE,SENAME
FROMSEND
WHERESENOLIKE@SENO;
EXECPROC_SEND@SENO=666601
/