Oracle大作业.docx
《Oracle大作业.docx》由会员分享,可在线阅读,更多相关《Oracle大作业.docx(22页珍藏版)》请在冰豆网上搜索。
![Oracle大作业.docx](https://file1.bdocx.com/fileroot1/2023-1/5/ff6c8cbe-5abb-40b4-af7e-6cb8ec621d93/ff6c8cbe-5abb-40b4-af7e-6cb8ec621d931.gif)
Oracle大作业
.
第四章数据库设计
五、数据表设计:
E-R模型
5.1数据库结构及说明
物流管理系统数据表及视图设计:
管理员登陆表:
(login)
列名
字符类型
长度
备注
UserID
int
4
主键ID
LoginName
char
20
用户名
UserName
char
20
用户姓名
PassWord
text
16
用户密码
MemberID
int
4
Member表外码
privilege
int
4
用户权限
对privilege中的值进行说明:
系统管理员
(1)、财务管理员
(2)、业务管理员(3)
用户资料表:
(Member)
列名
字符类型
长度
备注
MemberID
int
4
主键ID
MemberName
char
20
用户姓名
MemAddress
char
50
用户地址
MemPhone
char
12
用户电话
MemMomo
text
16
用户备注
建立管理员信息用户视图:
(login_VIEW)
列名
字符类型
长度
备注
UserID
int
4
主键ID
LoginName
char
20
用户名
UserName
char
20
用户姓名
privilege
int
4
用户权限
MemAddress
char
50
用户地址
MemPhone
char
12
用户电话
MemberID
int
4
MemberID
Business业务明细总表
编号
字段名
类型
说明
备注
1
Bus_ID
int
业务流水号(自动)
主键
2
Bus_GoodID
int
业务中货物的流水号
外键
3
Bus_TakeUnitID
int
托运人的流水号编号
外健
4
Bus_RecverID
int
收货人的流水号
外键
5
Bus_FromStation
Char(20)
从哪个站发货
6
Bus_FromCity
Char(20)
从哪个城市发货
7
Bus_ToStation
Char(20)
发往哪个联网站
8
Bus_ToCity
Char(20)
发往哪个城市
9
Bus_AcceptTime
Datetime
业务接洽时间
10
Bus_AcceptOpt
Char(20)
业务接洽操作员
11
Bus_Cast
Float
业务所需费用
12
Bus_IsPay
text
客户是否付款(现金/到付)
13
Bus_Fisished
text
业务是否完成
默认未处理
BusinessLog业务操作日志表
编号
字段名
类型
说明
备住
1
Log_ID
int
日志ID
主键
2
Log_BusID
int
业务流水号
外键
3
Log_Time
Datetime
日志产生时间
4
Log_Info
text
日志信息
5
Log_OptIP
text
业务操作IP
CommonWrap常用包装表
编号
字段名
类型
说明
备注
1
WrapID
int
包装类型ID(自动产生)
主键
2
WrapName
Char(20)
包装类名称
3
WrapFeq
int
包装使用频率
Entrust托运人明细表
编号
字段名
类型
说明
备注
1
TakeUnit_ID
int
托运业主ID(自动产生)
主键
2
EntrustManID
Char(18)
托运业主身份证号码
3
EntrustMan
Char(10)
托运业主的姓名
4
EntrustUnit
Char(50)
托运业主的单位名称
5
EntrustUnitAddr
text
业主地址
6
EntrustUnitPhone
Char(13)
业主联系电话号码
7
EntrustUnitPhone
Char(7)
业主邮政编码码
Receiver收货人明细表
编号
字段名
类型
说明
备注
1
Recv_ID
int
收货业主ID(自动产生)
主键
2
RecverManID
Char(18)
收货业主身份证号码
3
RecverMan
Char(10)
收货业主的姓名
4
RecverUnit
Char(50)
收货业主的单位名称
5
RecverUnitAddr
text
收货业主地址
6
RecverUnitPhone
Char(13)
收货业主联系电话号码
7
RecverUnitZone
Char(7)
收货业主邮政编码码
Good货物信息明细表
编号
字段名
类型
说明
备注
1
Good_ID
int
货物流水号自动产生)
主键
2
Good_Name
Char(50)
货物名称
3
Good_WrapType
Char(50)
货物包装类型
4
Good_Volume
float
货物所占体积
5
Good_Weight
float
货物重量
6
Good_Operator
Char(20)
货物录入操作员
7
Good_Quantity
int
货物数量(件数
8
Good_Signal
Char(10)
货物的标签
9
Good_Arrive
Char(10)
货物是否到站
默认在途中
Login登陆信息表
编号
字段名
类型
说明
备注
1
UserID
int
操作员ID(自动产生)
主键
2
LoginName
Char(20)
操作员登陆名
3
UserName
Char(20)
操作员名称
4
PassWord
Char(16)
操作员登陆的密码
5
MemberID
float
操作员的详细信表ID
外键
6
privilege
int
操作员的权限
1为最高级
LoginLog登陆日志表
编号
字段名
类型
说明
备住
1
Log_ID
int
日志ID
主键
2
LogUser
Char(20)
登陆用户
3
Log_Time
Datetime
日志产生时间
4
Log_Info
text
日志信息
5
Log_IP
Char(10)
登陆IP
BusinessView视图
编号
字段名
类型
说明
备住
1
RecverManID
r.RecverManID
收货身份证
主键
2
RecverMan
r.RecverMan
收货人姓名
3
RecverUnitAddr
r.RecverUnitAddr
收货人的地址
4
RecverUnitPhone
r.RecverUnitPhone
收货人的电话
5
EntrustManID
e.EntrustManID
发货人身份证
6
EntrustMan
e.EntrustMan
发货人的姓名
7
EntrustUnitPhone
e.EntrustUnitPhon
发货人的电话
8
EntrustUnitAd
e.EntrustUnitAddr
发货人的地址
9
Good_Name
g.Good_Name
货物的名称
10
Good_Signal
g.Good_Signal
货物的标签
11
Bus_ID
b.Bus_ID
业务的流水号
12
Bus_GoodID
b.Bus_GoodID
货物的ID
13
Bus_RecverID
b.Bus_RecverID
发货人的ID
14
Bus_FromStation
b.Bus_FromStation
发货站
15
Bus_AcceptTime
b.Bus_AcceptTime
业务的时间
16
Bus_FromCity
b.Bus_FromCity
发货的城市
17
Bus_ToStation
b.Bus_ToStation
目的站
18
Bus_ToCity
b.Bus_ToCity
目的城市
19
Bus_AcceptOpt
b.Bus_AcceptOpt
业务操作员
20
Bus_Cast
b.Bus_Cast
业务的费用
21
Bus_IsPay
b.Bus_IsPay
付款的方式
22
Bus_Fisished
b.Bus_Fisished
业务处理状态
23
Good_Arrive
g.Good_Arrive
货物是否到站
24
Bus_TakeUnitID
b.Bus_TakeUnitID
发货人的ID
备注:
r:
dbo.Receiver,g:
dbo.Good,b:
dbo.Business
Oracle数据库应用系统的设计与实现
1、数据库的创建……………………………………1
2、表设计……………………………………………1
3、E—R图……………………………………………1
4、数据库关系图……………………………………1
5、逻辑结构的实现…………………………………1
6、创建存储过程……………………………………1
7、建表………………………………………………1
8、建立外键约束……………………………………1
9、创建序列…………………………………………1
10、创建触发器……………………………………1
1、数据库的创建
2、表设计
用户类型表:
编号(主键)、类型名
列名
字符类型
长度
约束
说明
utID
Varchar2
20
主键
用户类型编号
utName
Varchar2
20
非空
用户类型
用户表:
编号(主键)、用户名、密码、用户类型编号(外键)、邮箱
列名
字符类型
长度
约束
说明
userID
Varchar2
20
主键
用户编号
userName
Varchar2
20
唯一
用户名
userPassword
Varchar2
20
用户密码
utID
Varchar2
20
外键
用户类型编号
email
Varchar2
100
唯一
邮箱
书籍类型表:
编号(主键)、类型名
列名
字符类型
长度
约束
说明
typeID
Varchar2
20
主键
类型编号
typeName
Varchar2
20
类型名
书籍信息表:
编号(主键)、名称、价格、库存、图片地址、描述、类型编号(外键)、作者
列名
字符类型
长度
约束
说明
bookID
Varchar2
20
主键
书籍编号
bookNumber
Int
书籍库存
bookTitle
Varchar2
250
非空
书籍名称
bookPrice
Number
(10,2)
价格
bokDesc
Varchar2
4000
书籍描述
typeID
Varchar2
20
外键-1
书籍类型编号
author
Varchar2
20
作者
bookStat
Varchar2
20
书籍状态
购物信息表:
用户编号(外键)、商品编号(外键)、商品数量
列名
字符类型
长度
约束
说明
bookNumber
int
商品数量
bookID
Varchar2
20
外键-3
书籍编号
userID
Varchar2
20
外键-2
用户编号
订单状态表:
编号(主键)、状态名
列名
字符类型
长度
约束
说明
osID
Varchar2
20
主键
订单状态编号
osName
Varchar2
20
订单状态名
收货信息表:
编号(主键)、用户编号(外键)、联系电话、收货人、收货地址
列名
字符类型
长度
约束
说明
deliverID
Varchar2
20
主键
收货信息编号
deliverName
Varchar2
40
收货人姓名
deliverPhone
Varchar2
40
联系电话
deliverAddress
Varchar2
500
收货地址
deliverPostcode
Varchar2
20
收货邮编
userID
Varchar2
20
外键-9
用户编号
identityCard
Varchar2
60
收货人身份证号
订单表:
编号(主键)、下单时间、收货信息编号(外键)、用户编号(外键)、订单状态编号(外键)、订单总价、订单结束时间
列名
字符类型
长度
约束
说明
orderID
Varchar2
20
主键
订单编号
createDate
Date
下单时间
orderTotal
Number
(10,2)
订单总价格
endDate
Date
订单结束时间
deliverID
Varchar2
20
外键-7
收货信息编号
osID
Varchar2
20
外键-8
订单状态编号
订单商品信息表:
商品编号(外键)、订单编号(外键)、商品数量
列名
字符类型
长度
约束
说明
bookNumber
int
商品数量
bookID
Varchar2
20
外键-3
商品编号
userID
Varchar2
20
外键-2
用户编号
3、E—R图
4、数据库关系图
5、逻辑结构的实现
6、创建存储过程
--存放过程
/*删除不报错过程*/
CREATEORREPLACEPROCEDURE
ifExistDel(sqlsvarchar2)
AS
BEGIN
executeimmediatesqls;
exception
whenothersthendbms_output.put_line(SQLERRM);
END
ifExistDel;
BEGIN
--如果表存在则删除
ifExistDel('droptabletb_booksinfocascadeconstraints');
ifExistDel('droptabletb_book_typecascadeconstraints');
ifExistDel('droptabletb_deliverinfocascadeconstraints');
ifExistDel('droptabletb_order_maincascadeconstraints');
ifExistDel('droptabletb_order_detailcascadeconstraints');
ifExistDel('droptabletb_order_statecascadeconstraints');
ifExistDel('droptabletb_user_maincascadeconstraints');
ifExistDel('droptabletb_user_typecascadeconstraints');
ifExistDel('droptabletb_shoppinginfocascadeconstraints');
--如果序列存在则删除
ifExistDel('dropsequencebooksinfo_seq');
ifExistDel('dropsequenceorder_main_seq');
ifExistDel('dropsequencedeliverinfo_seq');
ifExistDel('dropsequenceuser_main_seq');
ifExistDel('dropsequencebook_type_seq');
ifExistDel('dropsequenceorder_state_seq');
END;
7、建表
/*书籍信息表*/
createtabletb_booksinfo(
bookIDvarchar2(20)primarykey,
bookNumberint,--书籍库存
bookTitlevarchar2(250)notnull,--书籍名称
bookPricenumber(10,2),--书籍价格
bookPicturevarchar2(250),--书籍图片地址
bookDescvarchar2(4000),--书籍描述
typeIDvarchar2(20),--书籍类型(外键-1)
authorvarchar2(20),--书籍作者
bookStatvarchar2(20)--书籍状态(下架,上架)
);
/*书籍类型表*/
createtabletb_book_type(
typeIDvarchar2(20)primarykey,
typeNamevarchar2(20));
/*订单表*/
createtabletb_order_main(
orderIDvarchar2(20)primarykey,
createDatedate,--订单建立时间
orderTotalNumber(10,2),--订单总价格
endDatedate,--订单结束时间
deliverIDvarchar2(20),--收货信息编号(外键-7)
osIDvarchar2(20)--订单状态编号(外键-8)
);
/*收货信息表*/
createtabletb_deliverinfo(
deliverIDvarchar2(20)primarykey,--收货信息编号
deliverNamevarchar2(40),--收货人姓名
deliverPhonevarchar2(40),--联系电话
deliverAddressvarchar2(500),--收货地址
deliverPostcodevarchar2(20),--收货邮编
userIDvarchar2(20),--用户编号(外键-9)
identityCardvarchar2(60)--收货人身份证号
);
/*订单书籍信息表*/
createtabletb_order_detail(
orderIDvarchar2(20),--订单编号(外键-5)
bookNumberint,--书籍购买数量
bookIDvarchar2(20)--书籍编号(外键-6)
);
/*订单状态表*/
createtabletb_order_state(
osIDvarchar2(20)primarykey,
osNamevarchar2(20)--订单状态(审核中,已发货,已签收,未签收,取消)
);
/*用户表*/
createtabletb_user_main(
userIDvarchar2(20)primarykey,
userNamevarchar2(20)unique,
userPasswordvarchar2(20),
utIDvarchar2(20),--用户类型编号(外键-4)
emailvarchar2(100)unique);
/*用户类型表*/
createtabletb_user_type(
utIDvarchar2(20)primarykey,
utNamevarchar2(20)notnull);
/*购物信息表*/
createtabletb_shoppinginfo(
bookNumberint,
bookIDvarchar2(20),--商品编号(外键-3)
userIDvarchar2(20)--用户编号(外键-2)
);
8、建立外键约束
/*书籍--书籍类型-1*/
altertabletb_booksinfoaddconstraintf_book_typeforeignkey
(typeID)referencestb_book_type(typeID);
/*购物信息--用户-2*/
altertabletb_shoppinginfoaddconstraintf_shoppinginfo_userforeignkey
(userID)referencestb_user_main(userID);
/*购物信息--书籍-3*/
altertabletb_shoppinginfoaddconstraintf_shoppinginfo_bookforeignkey
(bookID)referencestb_booksinfo(bookID);
/*用户--用户类型-4*/
altertabletb_user_mainaddconstraintf_user_userTypeforeignkey
(utID)referencestb_user_type(utID);
/*订单书籍--订单-5*/
altertabletb_order_detailaddconstraintf_detail_orderforeignkey
(orderID)referencestb_order_main(orderID);
/*订单书籍--书籍-6*/
altertabletb_order_detailaddconstraintf_detail_booksinfoforeignkey
(bookID)referencestb_booksinfo(bookID);
/*订