设计师专区
接单大厅 素材下载

首页 » 装修学堂 » 操作规范 » 设计规范 > sql数据库规划事例 (sql server数据库规划规范)

sql数据库规划事例 (sql server数据库规划规范)

2019-12-21 198人查看

SQL小型数据库体系规划
--------------创立数据库--------------------------
create database bankDB
on primary
(
name = 'bankDB',
filename = 'e:bankbankDB.mdf',
size = 3MB,
maxsize = 100MB,
filegrowth = 15%
)
log on
(
name = 'bankDB_log',
filename = 'e:bankbankDB_log.ldf',
size = 2MB,
filegrowth = 1MB
)
go
--------------------创立数据表---------------------
use bankDB
gocreate table userInfo
(
customerID int identity(1,1) not null,
customerName varcha(10) not null,
PID cha(18) not null,
telphone cha(13) not null,
adress varcha(100)
)alter table userInfo
add constraint PK_customerID primary key(customerID)
alter table userInfo
add constraint CK_PID check(PID like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or
PID like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]X' or
PID like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
alter table userInfo
add constraint CK_telphone check(telphone like '13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or telphone like '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
alter table userInfo
add constraint DF_telphone default('地址不详') for adress
alter table userInfo
add constraint UQ_PID unique(PID)create table cardInfo
(
cardID cha(19) not null,
curType varcha(5) not null,
savingType varcha(6) not null,
openDate datetime not null,
openMoney money not null,
balance money not null,
pass cha(6) not null,
IsReportLoss cha(2) not null,
customerID int not null
)alter table cardInfo
add constraint FK_customerID foreign key(customerID) references userInfo(customerID)
alter table cardInfo
add constraint PK_cardID primary key(cardID)
alter table cardInfo
add constraint DF_openDate default(getdate()) for openDate
alter table cardInfo
add constraint DF_pass default('888888') for pass
alter table cardInfo
add constraint DF_curType default('RMB') for curType
alter table cardInfo
add constraint CK_openMoney check(openMoney > 1)
alter table cardInfo
add constraint CK_balance check(balance > 1)
alter table cardInfo
add constraint CK_pass check(pass like '[0-9][0-9][0-9][0-9][0-9][0-9]')
alter table cardInfo
add constraint DF_cardID default('1010 3576 ' + convert(varcha(4),convert(int,rand()*10000)) + ' ' +convert(varcha(4),convert(int,rand()*10000))) for cardID
alter table cardInfo
add constraint DF_IsReportLoss default('否') for IsReportLoss
alter table cardInfo
add constraint CK_IsReportLoss check(IsReportLoss like '是' or IsReportLoss like '否')
alter table cardInfo
add constraint CK_savingType check(savingType like '定时' or savingType like '活期' or savingType like '定活期')create table transInfo
(
transDate datetime not null,
cardID cha(19) not null,
transType cha(4) not null,
transMoney money not null,
remark varcha(100)
)alter table transInfo
add constraint DF_transDate default(getdate()) for transDate
alter table transInfo
add constraint FK_cardID foreign key(cardID) references cardInfo(cardID)
alter table transInfo
add constraint CK_stransType check(transType like '存入' or transType like '支取')
alter table transInfo
add constraint CK_transMoney check(transMoney > 0)go
--------------------创立开户用户卡信息视图---------
create view v_cus
as
selec customerName, cardID,curType,savingType,telphone,adress
from cardInfo inner join userInfo on cardInfo.customerID = userInfo.customerID
wher datediff(wk,openDate,getdate()) = 0-----------------------修正暗码--------------------
create proc changePWD
@cardID cha(19),
@newpwd cha(6),
@oldpwd cha(6) = '888888'
as
declare @temppwd int
if((selec count(*) from cardInfo wher cardID = @cardID) = 0)
begin
print '您输入的卡号不存在!'
return
end
selec @temppwd = pass from cardInfo wher cardID = @cardID
if(@temppwd = @oldpwd)
begin
updat cardInfo set pass = @newpwd wher cardID = @cardID
if(@@error = 0)
print '暗码修正成功!'
else
print '暗码修正失利!'
end
else
print '您输入的原始暗码不对,不能修正暗码!'----------------------银行卡挂失-------------------
create proc ReportLoss
@cardID cha(19),
@PID cha(18)
as
if((selec count(*) from cardInfo wher cardID = @cardID) = 0)
begin
print '您输入的卡号不存在!'
return
end
if((selec IsReportLoss from cardInfo wher cardID = @cardID) = '是')
begin
print '该卡已挂失!'
return
end
if((selec PID from userInfo wher customerID = (selec customerID from cardInfo wher cardID = @cardID)) = @PID)
begin
updat cardInfo set IsReportLoss = '是' wher cardID = @cardID
if(@@error = 0)
print '挂失成功!'
else
print '挂失失利!'
end
else
begin
print '您输入的身份证过错!不能挂失!'
return
end----------------------撤销银行卡挂失-------------------
create proc CancelReportLoss
@cardID cha(19),
@PID cha(18)
as
if((selec count(*) from cardInfo wher cardID = @cardID) = 0)
begin
print '您输入的卡号不存在!'
return
end
if((selec IsReportLoss from cardInfo wher cardID = @cardID) = '否')
begin
print '该卡没有挂失!不能进行此项操作!'
return
end
if((selec PID from userInfo wher customerID = (selec customerID from cardInfo wher cardID = @cardID)) = @PID)
begin
updat cardInfo set IsReportLoss = '否' wher cardID = @cardID
if(@@error = 0)
print '撤销挂失成功!'
else
print '撤销挂失失利!'
end
else
begin
print '您输入的身份证过错!不能撤销挂失!'
return
end----------------------核算银行的资金流转余额和盈余结算--------------------create proc StatMoney
as
selec ((selec sum(transMoney) as 资金流转余额 from transInfo wher transType like '存入') - (selec sum(transMoney) as 资金流转余额 from transInfo wher transType like '支取'))
as 资金流转余额 selec ((selec sum(transMoney) as 资金流转余额 from transInfo wher transType like '存入')*0.008
- (selec sum(transMoney) as 资金流转余额 from transInfo wher transType like '支取')*0.003)
as 盈余结算 ---------------------查询本周开户的卡号,显现该卡的信息-------------------
create proc SearchNewCus
as
print '本周开户卡号信息'
selec * from v_cus -----------------------查询本月买卖金额最高的卡号-------------------------
create proc SearchHigh
as
selec top 1 cardID, sum(transMoney) as 买卖金额 from transInfo
group by cardID------------------------------查询挂失帐号的客户信息----------------------
create proc SearchLossCus
as
print '挂失帐号客户信息'
selec * from userInfo wher customerID = (selec customerID from cardInfo wher IsReportLoss = '是')--------------------------催款提示事务------------------------------------
create proc Awoke
as
selec telphone, balance, customerName, cardID
from cardInfo inner join userInfo on cardInfo.customerID = userInfo.customerID
wher balance < 200-------------------------银行开户-----------------------------------------
create proc OpenUser
@curType varcha(5),
@savingType varcha(6),
@openMoney money,
@PID cha(18),
@telphone cha(13),
@customerName varcha(10)
as
begin tran OpenU
declare @tag int
declare @tempID varcha(10)
set @tag = 0 insert into userInfo (customerName,PID,telphone) values (@customerName, @PID, @telphone)
set @tag = @tag + @@error
if(@tag = 0)
set @tempID = (selec customerID from userInfo wher PID = @PID)
insert into cardInfo (curType, savingType, openMoney, balance, customerID) values (@curType, @savingType, @openMoney, @openMoney, @tempID)
set @tag = @tag + @@error
if(@tag = 0)
begin
print '开户成功!'
commit tran
end
else
begin
print '开户失利!'
rollback tran
end-----------------------------客户存款-------------------------------------
create proc SaveMoney
@cardID cha(19),
@transMoney money,
@transType cha(4) = '存入'
as
if((selec IsReportLoss from cardInfo wher cardID = @cardID) = '是')
begin
print '该卡已挂失!无法对其进行操作!'
return
end
begin tran Saving
declare @tag int
set @tag = 0 insert into transInfo (cardID, transType, transMoney) values (@cardID, @transType, @transMoney)
set @tag = @tag + @@error
updat cardInfo set balance = balance + @transMoney wher cardID = @cardID
set @tag = @tag + @@error
if(@tag = 0)
begin
print '存款成功!'
commit tran
end
else
begin
print '存款失利!'
rollback tran
end ------------------------------客户取款------------------------------------
create proc DrawMoney
@cardID cha(19),
@transMoney money,
@transType cha(4) = '支取'
as
if((selec IsReportLoss from cardInfo wher cardID = @cardID) = '是')
begin
print '该卡已挂失!无法对其进行操作!'
return
end
begin tran Drawing
declare @tag int
set @tag = 0 insert into transInfo (cardID, transType, transMoney) values (@cardID, @transType, @transMoney)
set @tag = @tag + @@error
updat cardInfo set balance = balance - @transMoney wher cardID = @cardID
set @tag = @tag + @@error
if(@tag = 0)
begin
print '取款成功!'
commit tran
end
else
begin
print '取款失利!'
rollback tran
end----------------------------转帐------------------------------------------
create proc Transfer
@cardID_out cha(19),
@cardID_in cha(19),
@tranMoney money
as
if((selec count(*) from cardInfo wher cardID = @cardID_out or cardID = @cardID_in) <> 2)
begin
print '请承认两张卡是否都存在!'
return
end
if((selec IsReportLoss from cardInfo wher cardID = @cardID_out) = '是')
begin
print @cardID_out + '该卡已挂失!无法对其进行操作!'
return
end
if((selec IsReportLoss from cardInfo wher cardID = @cardID_in) = '是')
begin
print @cardID_in + '该卡已挂失!无法对其进行操作!'
return
end
begin tran TransMoney
declare @tag int
set @tag = 0 updat cardInfo set balance = balance - @tranMoney wher cardID = @cardID_out
set @tag = @tag + @@error
updat cardInfo set balance = balance + @tranMoney wher cardID = @cardID_in
set @tag = @tag + @@error
if(@tag = 0)
begin
print '转帐成功!'
commit tran
end
else
begin
print '转帐失利!'
rollback tran
end
数据库sql 的课程规划怎样做,要借哪些书看,求大...

IT职业,数据库的确是一门适当重要的课程。但是在大学里边,对待数据库原理及运用这么课程以及其课程规划的注重程度就相差很大了,各个校园要求也不相同。假如是要学好,那的确要下工夫;假如仅仅完结课程规划,交差了事,其实适当简略。

既然是课程规划,也算是个小小的项目,既然是项目,也就离不开需求剖析、数据库规划、布置完结等环节。当然,这个小小的项目只需求前面的部分:需求和数据库规划,数据库规划是要点。

需求剖析就不必多说,和一切其他项目相同,无非便是用户需求,功用需求,体系需求等,找任何一本关于需求剖析的书都是能够,除了那些个废话之外,更多的是要依据规划需求进行剖析。

数据库规划就比较复杂一点,首要得把数据库原理搞清楚,比方:契合什么样的范式,怎样画ER图,怎么了解用例图。在规划数据库之前,有一系列的剖析要做:面向目标剖析,用例剖析,类和目标剖析等等。剖析到位是数据库规划成功的重要保障。剖析完结之后才是规划,比方:逻辑结构规划,联系形式规划,存取方法规划,存储结构规划,数据完好性规划,参阅完好性规划,Check束缚,Default束缚,触发器规划,视图规划,存储进程规划,权限规划等。这些都完结了,最终一步才是写SQL代码完结这些规划,创立数据库及相关的数据表,相关,视图,触发器,存储进程等一些列的看得见的数据库参数。

上面说的比较理论,也比较抽象。我想我能够用一个简略比如告知你我要表达的意思。比如很简略,其间许多当地都不是太好,不过或许能够给你一个直观的思路。

  

数据库运用课程规划报告书


  网上超市处理体系 

  成    绩:

  学    号:

  姓    名:

  教导教师:


  20    年  月  日


  目录

  

  任务书......................................... (3)

  1.    需求查询、剖析................................. (4)

  1.1.         企业介绍.................................... (4)

  1.2.         需求查询及剖析.............................. (5)

  2.    面向目标剖析和规划............................. (7)

  2.1.  用例剖析 (7)

  2.2.类和目标规划   (12)

  3.    逻辑结构规划.................................. (15)

  3.1.  类和目标向联系形式转化............................................ (15)

  3.2. 联系形式优化   (16)

  4.    数据库物理结构规划............................ (16)

  4.1. 存取方法规划   (16)

  4.2.  存储结构规划   (17)

  5.    数据库完好性规划.............................. (17)

  5.1. 主键及唯一性索引  (17)

  5.2.  参照完好性规划 (18)

  5.3.  Check束缚  (18)

  5.4.  Default束缚   (18)

  5.5. 触发器规划  (19)

  6.    数据库视图规划................................ (19)

  7.    数据库存储进程规划............................ (20)

  8.    权限规划...................................... (20)

  9.    总结.......................................... (21)

  参阅资料......................................... (21)



  网上超市处理体系

  

  摘要:

  网上超市处理体系,是以网上处理方法为实例而规划的一种实用型处理体系。本体系巨大的特点是通用性、简略操作性,适用于超市的处理。跟着产品的增多,产品处理人员的担负越来越重,为了让一切产品处理人员能从深重的作业中摆脱出来,完结无纸化作业;也为了使作业更有条理,更便利,更有功率,更为了超市在经营中进步赢利而开宣布这套网上超市处理体系。

  1 需求查询、剖析

  1.1      企业介绍

  在Internet飞速发展的今日,互联网成为人们快速获取、发布和传递信息的重要途径,它在人们政治、经济、日子等各个方面发挥着重要的效果。在政府的大力提倡和支持下,我国电子商务已走上了健康发展的轨迹。各职业纷繁树立自己的网站,展开网上产品信息发布,进行网上洽谈、签约,展开网络营销。将超市办成网上超市现已是大势所趋,乃至一些小型的超市也能够展开网上买卖。总归,电子商务以互联网为前言,以信息传达速度快、受众广泛、低成本动作的优势决议着其必定成为未来营销的主导,我国企业要充沛注重由此带来的时机和应战,才干在剧烈的国际竞争中立于不败之地。

  在超市经营中,跟着超市规划的不断扩大,人们对超市服务的要求不断进步,运用一款合适的网上超市处理体系将愈加火急。运用网上超市,人们能够在家里逛超市,只需求处理会员卡,就能够为本地顾客送货上门。不仅如此,把超市办成网上经营和处理将大大进步功率和收益。因而,开发一个网上超市处理体系对错常有必要和优点的。


  1.2 需求查询及剖析


  1.2.1顾客需求

  为便运用户购买产品,网上超市客户体系应该供给如下所示几种功用:

  (1)产品分类:网上超市与传统超市比较的一个优势是,当用户清晰自己要买哪类产品时,用户能够运用产品分类功用快速找到需求的产品。

  (2)产品预览:以列表的方法显现产品信息,这样能够在页面显现许多的产品信息,一起能够供给更多的产品阅读方法,如分类阅读、抢手产品等。

  (3)产品显现:当用户找到感兴趣的产品后需求显现产品的详细信息,包含产品简介、出产商、价钱等。

  (4)购物协助:当用户在购物中遇到什么问题时,能够检查购物协助取得相关信息。处理员会依据顾客反映的状况及时更改或添加购物协助的内容。

  (5)购物车:当用户找到需求的产品时,能够先将产品参加购物车,然后持续答应找其他的产品,购物车中存储当时用户计划购买的一切产品。

  (6)产品订单:当用户在网上超市中找到了一切需求的产品后,决议购买,能够下订单。处理员会定时处理用户下达的订单,并依据用户订单的信息向用户送货。

  (7)用户注册:供给用户注册功用以及相关的用户信息修正、暗码保护等。

  1.2.2出售处理员需求

  网上超市的出售部分的处理员功用是保护出售的正常作业,它需求供给如下功用:

  (1)产品处理:产品是网上超市的内容地点,处理员需求能够保护超市中的产品信息。一起与产品相关的产品类型等信息也需求处理员保护。

  (2)会员处理:因为有注册用户,所以处理员需求对支持账号进行处理,如删去一些无效账号等。

  (3)订单处理:在用户下达订单后,处理员需求对用户订单进行处理,为用户预备订货的产品,并安排送货、收取货等。

  (4)购物协助处理:处理员要依据用户反映的状况及时修正购物协助的内容,运用户得到即时的协助。

  1.2.3收购、仓存处理员需求

  网上超市的体系中将收购员和仓存处理员一致为收购、仓存处理员,其主要需求如下:

  (1)录入产品信息:产品是网上超市的内容地点,当有新进的货品时,收购处理员需求保护超市中的产品信息。

  (2)保护供货商信息:收购处理员在进行收购作业时,就需求对供货商信息的查询。

  (3)保护库房信息:有多上库房,什么产品寄存在哪个库房,这些都需求收购仓存处理员来保护。

  1.2.4体系处理员需求

  网上超市的体系处理员功用是保护体系的正常作业,它需求供给如下功用:

  (1)对体系中用户的处理:体系中顾客,出售处理员,收购、仓存处理员都是体系的用户,这些用户就需求体系处理员进行一致处理。

  (2)会员处理:因为有注册用户,所以处理员需求对支持账号进行处理,如删去一些无效账号等。但这样的一个功用能够授权于出售处理员去处理。

  1.2.5数据库需求剖析

  用户的需求详细体现在各种信息的供给、保存、更新和查询。这就要求数据库结构能够充沛地满意各种信息的输入和输出。搜集根本数据、数据结构和数据处理流程,为下一步的详细规划做好充沛的预备。

  网上超市处理体系要处理的数据流程图:

 

  2 面向目标剖析和规划

  2.1      用例剖析

       2.2     类和目标规划


  3 逻辑结构规划

  3.1 类和目标向联系形式转化

  顾客信息(名字、顾客编号、性别、出生年月、家庭地址、邮政编码、是否寓居本地区、联系电话、身份证号、补白信息)

  供货商信息(供货商编号、公司称号、联系人名字、联系地址、地点城市、邮政编码、电话号码、传真号码、补白信息)

  购物车(产品编号、顾客编号、产品称号、产品标准、时刻、补白信息)

  产品信息(产品编号、产品称号、单价、产品标准、产品产地、保质期、类别、补白信息)

  订单信息(订单编号、产品编号、顾客编号、产品称号、产品标准、数量、顾客名字、时刻、补白信息)

  职工信息(名字、职工号、部分编号、性别、出生年月、家庭地址、邮政编码、联系电话、身份证号、补白信息)

  进货信息(进货信息编号、供货商编号、公司称号、联系人名字、产品编号、产品称号、产品标准、产品产地、产品数量、产品单价、进货日期、补白信息)

  部分信息(部分编号、部分称号、负责人名字)

  出售信息(出售信息编号、顾客编号、顾客名字、产品编号、产品称号、产品标准、产品产地、产品数量、产品单价、出售日期、扣头、补白信息)

  库房信息(库房编号、库房称号、寄存产品类别、容量、负责人编号,负责人名字)

  留言信息(留言编号、留言标题、留言内容、留言日期、顾客编号、回复人编号、回复日期)

  积分信息(积分编号、顾客编号、顾客名字、积分)

  产品入库(库房编号、库房称号、产品编号、产品称号、库存量、入库时刻)

  3.2 联系形式优化

  顾客信息(名字、顾客编号、性别、出生年月、家庭地址、邮政编码、是否寓居本地区、联系电话、身份证号、补白信息)

  供货商信息(供货商编号、公司称号、联系人名字、联系地址、地点城市、邮政编码、电话号码、传真号码、补白信息)

  购物车(产品编号、顾客编号、时刻、补白信息)

  产品信息(产品编号、产品称号、单价、产品标准、产品产地、保质期、类别、补白信息)

  订单信息(订单编号、产品编号、顾客编号、数量、时刻、补白信息)

  职工信息(名字、职工号、部分编号、性别、出生年月、家庭地址、邮政编码、联系电话、身份证号、补白信息)

  进货信息(进货信息编号、供货商编号、产品编号、产品称号、产品标准、产品数量、产品单价、进货日期、补白信息)

  部分信息(部分编号、部分称号、负责人名字)

  出售信息(出售信息编号、顾客编号、产品编号、产品数量、产品单价、出售日期、扣头、补白信息)

  库房信息(库房编号、库房称号、寄存产品类别、容量、负责人编号)

  留言信息(留言编号、留言标题、留言内容、留言日期、顾客编号、回复人编号、回复日期)

  积分信息(积分编号、顾客编号、积分)

  产品库存(库房编号、产品编号、库存量、入库时刻)

  4 数据库物理结构规划

  4.1       存取方法规划



  4.2       存储结构规划

  为了进步查询时刻和空间的运用率,对网上超市处理体系的数据库作如下规划:

  首要将网上超市处理体系日志文件寄存在磁带上,因为数据库的数据备份和日志文件等只在毛病康复的时分才要运用,而且数据量很大。第二,把一切的根本表(如:顾客信息表)寄存在一块磁盘上,而一切的索引则寄存在另一块磁盘上。这样分隔寄存的意图在于查询时多个磁盘驱动器并行作业,进步了物理I/O读写功率,也加快了存取速度。

  5 数据库完好性规划

  5.1 主键及唯一性索引



  5.2       参照完好性规划

  1、因为职工信息表中的部分编号有必要在部分信息中存在,而部分编号又是部分信息表中的主键,所以职工信息表中将特点部分编号规划为外键。

  2、订单信息表中特点产品编号对应于产品信息表中的产品编号,因而将其规划为外键。

  订单信息表中字段顾客编号对应于顾客信息表中的顾客编号,而顾客编号又是顾客信息的主键,所以将顾客编号作为订单信息表的外键。

  3、进货信息表中特点产品编号对应于产品信息表中的产品编号,因而将其规划为外键。

  进货信息表中字段供货商编号对应于供货商信息表中的供货商编号,而供货商编号又是供货商信息表的主键,所以将供货商编号作为进货信息表的外键。

  4、出售信息表中字段顾客编号对应于顾客信息表中的顾客编号,而顾客编号又是顾客信息表的主键,所以将顾客编号作为出售信息表的外键。此外,出售信息表中的产品编号有必要在产品信息表中存在,所以将产品编号也规划为改表的外键。

  5、留言信息表中顾客编号需求在顾客信息表中存在记载,把顾客编号作为该表的外键。留言信息表中的特点回复人编号有必要是职工信息表在存在的记载,所以把回复人编号也设为留言信息表的外键。

  6、积分表中的特点顾客编号对应于顾客信息表中的顾客编号,而顾客编号是主键,所以将其规划为积分表的外键。

  5.3 Check束缚

  1、对积分表中的积分字段规划check束缚:积分有必要是大于或许等于0的。

  2、订单信息表、进货信息表和出售信息表对数量、产品数量规划check束缚:即这些特点值有必要取大于或许等于0的值。

  5.4 Default束缚

  1、积分表中的积分字段规划default束缚:积分默认值为0。

  2、订单信息表中特点值数量默以为1单位。

  5.5       触发器规划

  1、 当收购完结后,即在进货信息表中添加信息时,树立该表上的刺进触发器。该触发器的功用是当进货信息表中刺进信息时,将进货的产品信息主动添加到产品信息表中以及在产品库存表在主动添加库存量。在这些动作完结之后,将进货信息表中添加的该信息删去。

  2、 在订单信息表上树立刺进触发器。假如订单中要添加的产品信息在产品信息表中不存在,则不予以添加。当订单信息成功提交,即订单信息表在成功刺进新记载时,首要依据该顾客的积分状况主动生成扣头,然后主动将订单信息表中的记载添加到出售信息表中,而且将积分信息表中的记载更新或添加。在这些动作完结之后,再将订单信息表在的该记载删去。

  3、 在产品库存量缺乏的时分需求体系提示作业人员及时的进行收购,所以在产品库存表上树立一个触发器就能够完结以上功用。当产品库存量抵达必定的底线时,主动给收购、库存处理员留言,即在留言信息表中添加信息。这样能够对产品库存状况动态把握。

  6              数据库视图规划

  1、为了便利检查部分信息,树立部分信息视图。显现部分信息表中的悉数内容。

  2、产品查询在网上超市处理体系中检查的十分频频,需求树立产品信息视图。显现产品信息表中的悉数信息。

  3、树立顾客信息视图,显现顾客信息表中的悉数内容。

  4、在收购的时分,收购人员需求对供货商的信息进行查询,因而需求建供货商信息视图,显现该表中的悉数内容。

  5、当顾客在网上逛过超市后会将自己喜爱的产品先放入购物车中备选,这时就需求对购物车进行查询。所以有必要树立购物车信息视图。除了显现购物车表中的悉数信息外,还需求衔接查询并显现产品信息表中的产品称号和产品标准以及其他的产品信息。

  6、顾客确定要购买产品的时分,需求提交订单信息,而在提交之前有必要对其进行查询,所以需求树立订单信息视图。显现订单信息,以及衔接查询并显现产品信息表中的产品称号和产品标准以及其他的产品信息。

  7、关于网上超市的各部分的负责人来说,常常需求对职工的信息检查,故树立职工信息视图。除显现职工信息表中悉数信息外,还要经过衔接查询并显现部分称号。

  8、收购人员在收购前后都需求对进货信息进行查询,这就需求树立进货信息视图。除显现进货信息表中悉数信息外,还要经过衔接查询并显现供货商的公司称号、联系人名字、联系电话和产品称号、产品标准、产品产地、数量及单价。

  9、每隔一段时刻,都要检查一下收益怎么,即查询出售状况。因而需求树立一个出售信息视图。显现出售信息表中的悉数信息和经过衔接查询并显现产品称号、产品标准、产品产地、数量及单价。除此之外,还要核算并显现出售总额。

  10、树立库房信息视图,显现库房信息表中的一切信息即可。

  11、树立留言信息视图。显现留言信息表中的悉数信息以及经过衔接查询并显现顾客名字和回复人的名字。

  12、对积分的查询也是顾客常常查询的项目。所以十分有必要树立积分信息视图。显现积分信息表在的一切信息和衔接查询并显现顾客名字。

  13、不管是在出售仍是在收购的时分,都要对产品的库存量进行查询。因而要树立产品库存信息视图。显现库存信息以及经过衔接查询并显现库房称号和产品称号、产品标准等其他产品信息。

  7              数据库存储进程规划

  1、 顾客是网上超市处理体系的最主要的用户,也需求常常的添加和删去,故树立顾客删去存储进程。在删去某个顾客信息的时分,假如他的购物车中还有记载,则将其删去;若他提交了订单信息,也要把订单信息中的记载删去;最终还要把留言信息表和积分表中与该顾客相关的信息同时删去。

  2、 树立删去职工的存储进程。假如该职工是某个部分的负责人,则一般状况下不予以删去,假如要删去,则有必要对部分信息表中的负责人进行更新。若该职工是留言信息表中的回复人,则要对留言信息表在回复人编号进行修正或许删去。

  3、 树立删去产品的存储进程。假如某个产品现已过了保质期或许现已被筛选了,则要对这样的产品进行删去。首要要在产品信息表中把这些产品删去,在产品库存表将其删去,其次若果有顾客将该产品选入了购物车,乃至提交了订单,则要对顾客予以阐明并将其从购物车表和订单信息表中删去。

  8              权限规划


  9 总结

  理论联系实际才干做好一件事,学习一门课程相同是这样。经过一周的数据库课程规划实习,我收获颇丰,从中学到了许多新常识,这些常识是在讲堂中不能学到或许说很难学到的。而且对数据库运用这一门课程有了更深一步的了解。在做课程规划中,咱们能够把讲堂上所学的理论常识和实践联系起来,在所要开发的体系中逐渐学会了融会贯通。相同经过对SQL的运用,也使咱们娴熟和稳固了对SQL的了解。这样咱们对开发体系的整个进程也有了一个体系的了解。

  这次课程规划,我挑选的课题是《教务处理体系》,在教务处理体系的开发中采用了完好的数据库规划的全进程,从需求剖析到概念结构规划,到逻辑结构规划,再到物理结构规划,最终到数据库的施行和保护,每一步都仔细的剖析和施行。当然,在本次课程规划的效果中还存在许多的缺乏之处,这就需求咱们学习更多的常识,进行更深研讨。

  在这次实习中,咱们彻底投入到了开发体系的国际里。完毕后理解了理论和实践要想充沛地结合,需求十分厚实的根本功。这就阐明学好基础常识是理论付诸实践的条件。在开发教务处理体系中我学到了许多,期望在今后能充沛运用实习的时机充分自己,用所学的理论常识充沛去实践,在实践中又要尽力去稳固理论常识。只要这样,才干把一门课程乃至一门学科学精、学透

  参阅资料:

  1.     萨师煊,王珊.数据库体系概论.高等教育出版社.第三版.2000

  2.     龚波等译. SQL SERVER 2000教程.北京期望电子出版社

  3.     史嘉权,史红星,李博等.数据库体系概论习题、试验与考试教导.清华大学出版社.2006

  4.     赵乃真等.信息体系规划与运用.清华大学出版社.2005

  

注:因为这儿欠好排版,文章中的表格和图片没有显现出来,我打包成附件了,能够下载检查。


ink="/share/link?shareid=1806646937&uk=688807595" name="数据库课程规划-网上超市处理体系.rar" wealth="5" />

maurizio pecoraros milanese boutique has a gallery like sophistication​

maurizio pecoraros milanese boutique has a gallery like sophistication


sql 数据库规划规范
1. 表名约好:新添加的表一致按“{子体系}_{模块名}_{表名}[_bak|_tmp|_mid]”,其间_bak:表明备份,将不生成代码,|_tmp:为某表的暂时表,|_mid:中心成果表或仅在进程中运用表,不生成代码,表名尽可能精简明晰,缩短表名字符数量;
2. 视图命名约好:{子体系}_V[_{模块名}]_视图名;存储进程命名约好:{子体系}_SP[_{模块名}]_进程名,其间模块名可省掉,模块名为“job”则表明作业主动调用进程;函数命名约好:{子体系}_FUN[_{模块名}]_函数名;
3. 补白字段:有必要要有中文补白阐明,状况之类字段补白格局为“{中文阐明}[:{{值}-{含义} [;...n]}]”,如“批阅状况:1-经过;2-不经过
4. 主外键字段:主键一般状况下用Id为整型主动递加,外键名为{相关表表名}_Id,主外键要树立相关;
5. 状况字段:主张一致用Status命名,记载的有效性字段一致用RecordStatus命;
6. 附加列:为坚持兼容,一切表最终4个字段为Creater、CreateTime、Modifer、ModifiedTime;

网站声明:本网站部分内容由用户自行上传,如权利人发现存在误传其作品情形,请及时与本站联系,
© 2014-2017 qiaoshe.com 巧设网 保留所有权利 /备案号:沪ICP备18007629号

0