项目小结之数据库设计
项目小结之数据库设计
最近做了一个小项目完整的数据库设计,想总结一些设计上的所得,希望大家多多指教。
有时一个项目,普通程序员一般不会去接触数据库设计,一般都有专业的DBA或是老程序员去设计,下面是我推测的几点可能原因:1:新手对项目了解不深,正好这是老鸟的长处。
2:新手对局部的关注往往大于整体,很难考虑的特别周全。3:数据库设计的好坏在某种程度上直接影响项目的复杂度以及性能。第一:我们要知道什么是范式,为什么说到数据库设计总要提到一个名词:范式。范式:符合某一种级别的关系模式的集合。设计数据库必须遵循一定的规则,在关系数据库中,这种规则就是范式。
第二:范式的分类。关系数据库中的关系必须满足一定的要求,目前关系数据库有六种范式:第一范式、第二范式、第三范式、第四范式、第五范式和第六范式。满足最低要求的是第一范式,其余范式以次类推。这么多的分类并不一定要求全部满足,平时我们通常是达到第三范式就行。第三:范式的作用?
1:优点:是将其转化为一些表的过程,这种方法可以使从数据库得到的结果更加明确。
2:缺点:可能使数据库产生重复数据,从而导致创建多余的表。
3:是在识别数据库中的数据元素、关系,以及定义所需的表和各表中的项目这些初始工作之后的一个细化的过程。
4:设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,也不会发生插入、删除和更新操作异常。反之则给编程人员制造麻烦,可能存储了大量不需要的冗余信息。下面来简单介绍下前三种范式:
一:第一范式。是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。所谓第一范是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。例如有一张存储文件的表,正确应该是这样:可以看到这个表包含了好几个列,如果我们把这些信息都放在一列里面那么就不满足上面定义的1NF了。
createtableRegulations(
IDintidentity,Titlenvarchar(200)null,FileAddressvarchar(255)null,OpenDatedatetimenull,TypeIDintnull,PostDatedatetimenull,constraintPK_REGULATIONSprimarykey(ID))
二:第二范式:在第一范式的基础上建立起来的。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键、主码。像上面的Regulations的ID列就是一个身份标识列(identity)。
三:第三范式:要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如:上面有了一个文件表Regulations,如果这个表是存储的主文件,它相应的还有n个附件信息的话,我们就需要创建另外一张附件表来存储附件。两表如何联系起来呢,我们可以把主文件表的主键随同附件信息做为一条记录插入到附件表中,这里插入的主文件表信息中只包含了主键ID,并没有插入其它信息,这种关系就满足了第三范式要求。
createtableAttachment(
IDintidentity,
FileIDintnull,//主文件主键IDAddressvarchar(255)null,Titlenvarchar(200)null,constraintPK_ATTACHMENTprimarykey(ID))
最后来总结了我这个项目中的具体应用:
第一:启用数据字典理念来提高开发效率。什么是数据字典这里我不多说,大家不知道的可以网上搜索下。在一个项目中有时会遇到非常多的选项,就是供表单选择某些小数据项的内容,请看下面的图:
每一个模块在插入记录时都或多或少有这样的选项,如果每一张表都建一个对应的选项表的话,维护进来工作量相当大,所有可以把这些小数据量的选项存储到一张表,数据字典表如下:
下面是数据字典的数据展示图:
第二:对数据库表字段数据类型的设置有了进一步认识。
1:SQL有一种特殊的数据类型;Unicode数据类型,包括Nchar,Nvarchar和Ntext传统的非Unicode数据类型允许使用由特定字符集定义的字符。使用Unicode数据类型,列中可以存储任何由Unicode标准定义的字符。在Unicode标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占用的空间是使用非Unicode数据类型的两倍。当列的长度变化时,应该使用
Nvarchar字符类型。当列的长度固定不变时,应该使用Nchar字符类型。我们在表单验证时,用户有时会输入英文和中文混合文字,为了验证方便,可以将这种情况时的字段设置成Unicode。
2:对于非Unicode数据,尽量选择相对应的类型,例如手机号码一般都是数字组成,且长度基本固定,设置成char(15)就行,email设置成varchar(100)就行。
第三:如何灵活利用一对多关系。一对多的关系非常常见,但如果加以灵活应用有时效果更佳。
例如,上面的图中有一个了解管道的选项,它和对应的主表是一对多的关系,如果这个选项在不同的模块中出现,我们是否需要为每个主表建立一个一对多关系呢?我选择做一个中间关系表。我们可以把所有模块中包含了了解管道选项的主表与这个中间关系表联系起来,这样就只用维护这一个关系表就行了,节约不少时间。
扩展阅读:数据库设计总结报告
网上销售管理系统10042130127郭文静
数据库设计总结报告
1.数据库规划
1.1任务陈述:
所设计的数据库后台管理系统为网上销售管理系统,该系统为一服装网的网上交易及会员间的交流提供后台支持,集成了服装信息,会员信息,管理员信息的录入,更新,删除,统计,查询等一系列功能,另外,该系统还为前台的管理员发起的公告,会员发布的论坛帖子提供了相应的数据录入,更新,维护等后台支持.
1.2任务目标:
维护(插入,更新和删除)服装类型数据维护(插入,更新和删除)服装数据维护(插入,更新和删除)会员数据维护(插入,更新和删除)管理员数据
维护(插入,更新和删除)会员网上购物的订购单数据维护(插入,更新和删除)会员网上购物的详细订购单数据维护(插入,更新和删除)管理员网上发布的公告数据维护(插入,更新和删除)会员网上发布的贴子数据实现对服装的查询
实现对服装类型的查询实现对会员的查询实现对管理员的查询
实现对会员订购单的查询
实现对订购单所对应的详细订单的查询实现对管理员所发布的公告的查询实现对会员所发布的贴子的查询跟踪服装关注情况
跟踪会员订购单的确认状态跟踪会员所定服装的发送状态跟踪管理员所发布的公告关注情况跟踪会员所发布的贴子关注情况报告服装类型的情况报告服装信息的情况报告会员的情况网上销售管理系统10042130127郭文静
报告管理员的情况报告会员订购单情况
报告会员详细订购单情况报告会员发帖情况报告会员留言情况
报告管理员发布公告情况
1.3系统边界
发布网上公告管理员服装信息确认网上购物帖子发布会员形成订购单对应查询订购详细清单查询库存
库存管理1.4主要用户视图
用户视图超级管理员需求维护(插入,更新和删除)管理员数据实现对管理员的查询报告管理员的情况维护(插入,更新和删除)会员数据更新个人信息实现对会员的查询实现对个人信息的查询报告会员的情况用户管理员订单管理员维护(插入,更新和删除)会员网上购物的订购单数据网上销售管理系统10042130127郭文静
公告管理员论坛管理员服装管理员会员维护(插入,更新和删除)会员网上购物的详细订购单数据更新个人信息实现对个人信息的查询实现对会员订购单的查询实现对订购单所对应的详细订单的查询跟踪会员订购单的确认状态跟踪会员所定服装的发送状态报告会员订购单情况报告会员详细订购单情况维护(插入,更新和删除)管理员网上发布的公告数据更新本人信息实现对本人信息的查询实现对所发布的公告的查询跟踪管理员所发布的公告关注情况报告管理员发布的公告情况删除会员网上发布的垃圾帖子更新个人信息实现对个人信息的查询实现对会员所发布的贴子的查询跟踪会员所发布的贴子关注情况报告会员发帖情况报告会员留言情况维护(插入,更新和删除)服装类型数据维护(插入,更新和删除)服装数据更新个人信息实现对个人信息的查询实现对服装的查询实现对服装类型的查询跟踪服装关注情况报告服装类型的情况报告服装信息的情况维护(插入,更新和删除)本人在论坛中所发布的贴子维护(插入,更新和删除)本人在论坛中的留言更新个人信息实现对个人信息的查询实现对个人在论坛中所发贴子的查询实现对个人在论坛中留言的查询实现对服装的查询实现对服装类型的查询实现对本人订购单的查询实现对本人订购单所对应的详细订单的查询实现对管理员所发布的公告的查询实现对会员所发布的贴子的查询网上销售管理系统10042130127郭文静
网上销售管理系统10042130127郭文静
2.需求分析
2.1数据需求
(1)服装信息表的数据包括服装编号(自动编号),服装名字,服装类型号,服
装风格,服装品牌,服装颜色,服装尺码,服装质地,服装价格,服装添加时间,服装介绍,服装订购描述,服装网上浏览量(动态变化),服装图片的url,服装是否特价(y/n),服装打折后价钱(若非特价,该项为原始价格)。每种服装的编号是唯一的。(2)服装类型表的数据包括服装类型号(自动编号),服装类型的名字,服装类型的父类型号(若无父类型,该项为0),是否有子类型(y/n),服装类型的添加时间。每个服装类型的编号是唯一的。(3)会员信息表的数据包括会员编号(自动编号),用户名,会员密码,会员真
实名字,性别,电话号码,手机号码,电子邮箱,家庭地址,邮编,会员添加时间,会员积分。每个会员的编号是唯一的。(4)管理员信息表的数据包括管理员编号(自动编号),管理员名字,管理员密
码,管理员真实名字,管理员具体身份(超级管理员,服装管理员,用户管理员,订单管理员,公告管理员,论坛管理员),管理员邮箱,管理员添加时间。每个管理员的编号是唯一的。(5)公告信息表的数据包括公告编号(自动编号),公告标题,公告内容,公告发布时间,发布公告的管理员编号,公告的网上浏览量(动态变化)。每个公告的编号是唯一的。(6)订购单信息表的数据包括订购单编号(自动编号,唯一),订购时间,订购
单是否被管理员确认(y/n),确认时间(若未确认,则为空),订购单中所订购服装的发送状态(0:所订购的服装还未发送;1:已经发送但订购者还未收到;2:订购者已收到),该次订购的接收者姓名,接收者地址,接收者电话,接收者邮箱,发起该次订购的会员的编号,该次订购的总价钱。对于订购单信息表中刚插入的一条记录,订购单是否被管理员确认的初值为n,经过订单管理员确认后,将其更新为y,订购单中所订购服装的发送状态初值为0,由前台应用程序处理后更新其值。(7)详细订购单信息表的数据包括详细订购单的编号(自动编号,唯一),所对
应的订购单的编号,所订购的服装的编号,所订购的服装的数量,该项订购的价钱。订购单信息表记录会员一次购物的消费情况,而详细订购单信息表记录在会员的这次消费中每项消费的详细情况。(8)库存表的数据包括服装编号,库存量,库存量下限。
(9)帖子信息表的数据包括帖子编号(自动编号,唯一),帖子主题,帖子内容,
发帖的时间,发帖的会员的编号,帖子的浏览量,帖子的回复数,(10)回复信息表的数据包括回复编号(自动编号,唯一),回帖的会员的编号,
回复的内容,回复所针对的帖子的编号,回复时间。网上销售管理系统10042130127郭文静
2.2事务需求
2.2.1数据录入
a)录入新会员的详细信息b)录入新管理员的详细信息c)录入新服装的详细信息
d)录入新服装类型的详细信息e)录入新的公告的详细信息f)录入新的订单的详细信息
g)录入新的详细订单的详细信息h)录入新帖子的详细信息i)录入新回复的详细信息
2.2.2数据更新/删除
a)更新/删除管理员信息。b)更新/删除会员的信息。c)更新/删除服装的信息。d)更新/删除服装类型的信息e)更新/删除公告的信息f)更新/删除订单的信息g)更新/删除详细订单的信息h)更新/删除论坛帖子的信息i)更新删除回复的信息
2.2.3数据查询
数据库必须支持下列查询:a)列出指定服装的详细信息b)列出指定类型的服装信息c)列出指定会员的基本信息d)列出指定会员的订购单信息e)列出指定会员论坛中的发帖信息f)列出指定会员论坛中的回复信息g)列出指定管理员的详细信息h)列出指定管理员发布的公告信息i)列出指定公告的发布管理员的信息j)列出指定时间段内的订购单信息
k)列出指定订单所对应的各详细订单的信息,按详细订单号排序l)列出指定订单所对应的会员的详细信息
m)列出指定的详细订单所对应的服装的详细信息
2.2.4初始数据库大小
a)大约有300种服装可供订购
b)大约有10名管理员分管该系统的各项工作网上销售管理系统10042130127郭文静
c)大约有1000名会员在该系统注册
2.2.5数据库增长速度
a)每月大约有20种服装加到数据库中。
b)每月大约会有1000多名新会员注册。如果会员一年没消费,则将其记录从数据库中删除。每月大约有100条会员记录被删除。c)每天大约会有30份服装订购单。
2.2.6记录查找的类型和平均数量
a)查询订购单信息大约每天20次。b)查询详细订购单信息大约每天20次。
c)查询指定会员的详细情况大约每天20次。d)查询指定服装的详细情况每天大约30次(周日至周四),50次(周五,周六),高峰期为每天下午6:00-9:00.e)查询指定管理员的信息大约每天2次。f)查询公告信息大约每天20次。g)查询论坛帖子信息大约每天15次
2.2.7网络和共享访问需求
a)所有管理员都必须安全地和该系统的数据库实现网络互联。b)系统能够支持至少3名成员并发访问。
2.2.8性能
a)在上班时间但非高峰期单个记录的搜索时间要少于1秒,高峰期各种
搜索的响应时间要少于5秒。
b)在上班时间但非高峰期多条记录的搜索时间要少于5秒,高峰期各种搜索的响应时间要少于10秒。
c)在上班时间但非高峰期更新/保存记录的时间要少于1秒,高峰期要少于5秒。
2.2.9安全性
a)数据库必须有口令保护。
b)每个管理员应该分配到一个特定用户视图的数据库访问权限。
c)每个管理员只能在适合他们完成工作需要的窗口中看到需要的数据。
2.2.10备份和恢复
数据库必须在每天晚上12点备份。
2.2.11用户界面
用户界面必须是菜单驱动的,联机帮助易于查找和使用。
2.2.12法律问题
本数据库系统,要实现所要遵守的法律。网上销售管理系统10042130127郭文静
3逻辑数据库设计
3.1实体定义:
对整个系统,可以定义下列实体:
Costume(服装)
CotumeType(服装类型)Member(会员)Admin(管理员)Bullet(公告)
BusinessOrder(会员定购单/消费单)OrderDatail(会员的详细定购单/消费单)newpost(论坛帖子)reply(论坛回复)Store(库存)
3.2实体文档:
EntitynameCostumeDescription该系统所销售的服装服装类型,eg:长衫,短裤等等该系统的管理员,分为超级管理员,服装管理员,订单管理员,用户管理员,论坛管理员,公告管理员该连锁店的会员,各会员在不同的分店可以使用同一注册号会员的消费单,一个会员一次购买的所有服装属于一个消费单会员的详细消费单,记录消费单的详细情况AliasClothesOccurrence该系统销售多种服装一种类型的服装包含多种服装,一种服装只属于一种类型该系统有多个管理员,每个类型的管理员管理该系统相应的模块CostumeTypeAdminMemberConsumer该系统有多名会员由于淡旺季等原因,不同时间段的销售交易情况有所不同会员的消费单可以对应多个详细消费单,所购买的每种服装都对BusinessOrderOrderDetail网上销售管理系统10042130127郭文静
Bullet网上系统的公告,公告内容可以是最近搞活动的服装等等论坛中会员发布的帖子论坛中会员针对帖子的回复newpostreplyStore记录每种服装的库存应一个详细消费单一个管理员可以发布多个公告,一个公告只能由一个管理员发布,以免重复每名会员可以发布多个帖子每个帖子可以有多个回复每种服装的库存量至少要为某一值,当其数目少于该值时就要发出进货单,但这一部分在该系统外部,这里不作进一步说明3.3ER模型:
(该系统的ER模型)网上销售管理系统10042130127郭文静
3.4联系归档表:
EntityMemberMemberreplyMemberAdminAdminCostumeBusinessOrderStaffCostumeMultiplicityRelationshipMultiplicity0..*Announce1..10..*Announce1..11..1for0..*0..*0..*0..1..11..*0..*0..*GenerateConfirmAnnounceBelongToHasAttendsAttends1..11..11..11..*1..11..11..1EntitynewpostreplynewpostBusinessOrderBusinessOrderBulletCostumeTypeOrderDetailOrderDetailOrderDetail3.5标识实体或关系的有关属性
EntityAttributesMemberIDPasswordMemberNameRealNameTelephoneMemberMobileEmailAddressZipAddDateAccumulatePointsSexDatatypeDescriptionandNullsMultivaluedlength会员号(非空4intNoNo且唯一),自动编号.会员登陆口50varcharNoNo令会员名字50varcharNoNo会员真实名50varcharNoNo字会员联系电50varcharNoYes话会员手机50varcharYesYes常用Email200varcharNoYes家庭住址200varcharNoNo所在地的邮20varcharNoNo编8成为会员的NoNodatetime时间积分性别4int2varcharNoNoNoNo网上销售管理系统10042130127郭文静
服装号(非空且唯一),自动编号.服装名字服装所属类CostumeTypeID别(eg:套装裙子)CostumeStyle风格CostumeBrand品牌CostumeColor颜色CostumeSize尺码CostumeTexture质地CostumeAddDateOrderDescCostumePriceCostumePointCostumeImgIsSpecialSpecailPriceTypeIDTypeNameCostumeTypeTypeFidTypeHaveChildTypeAddDateAdminIDAdminNamePasswordRealNameEmailAddDate添加时间定购说明服装价格网上该服装被浏览的次数该种服装的照片的URL标志是否为特价服装降价后的价格服装类型号类型的名字类型父类型号是否有子类型添加时间管理员号管理员名字管理员密码管理员真实名字管理员Email添加时间CostumeIDCostumeName4int50varchar4int20varchar20varchar20varchar20varchar20varchar8datetime100varchar8money4int200varchar2varchar8money4int50varchar4int2varchar8datetime4int50varchar50varchar50varchar200varchar8datetimeNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoAdmin网上销售管理系统10042130127郭文静
Actor管理员具体身份(超级管理员,服装管理员,论坛管理员,公告管理员,用户管理员,订单管理员)公告号公告标题公告内容20varcharNoNoBulIDBulTitleBulContentBulletBulAddDateAdminIDBulPointOrderIDOrderTimeOrderIsConfirmConfirmTimeConfirmAdminIDOrderSendStatusBusinessOrderOrderRecNameOrderAddressOrderZipOrderMemberIDOrderTotalPriceOrderEmailOrderDetailOrderDetailID4int100varchar4000varcharNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo公告添加时8datetime间发布该公告4int的管理员ID该公告的浏览量订单号产生订单的间订单确认情况订单确认时间确认订单的管理员ID订单发送情况订单的收货人姓名订单的收货人地址订单的收货人邮编产生订单的会员的ID订单的总价4int4int8datetime2varchar8datetime4int4int50varcahr200varchar20varcahr4int8money订单的收货200varchar人的Email详细订单号4int网上销售管理系统10042130127郭文静
OrderIDCostumeIDCostumeNumOrderPricepostidsubjectmessagenewpostposttimeuseridrepliesviewsreplyiduseridmessagereplytimepostidCostumeIDStoreStoreLowest该项所对应的订单号该项所对应的服装号该服装购买的数量该服装总价4int4int4int8moneyNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoreply每个帖子的4intid200varchar帖子主题200帖子内容varchar帖子发布时8datetime间发布帖子的4int会员的id帖子被回复4int的次数帖子被浏览4int的次数回复id4int进行回复的4int会员的id回复的内容200varchar8回复的时间datetime回复所针对4int的帖子的id库存中服装的id库存量库存量下限4int4int4int3.6确定属性域
Member的Sex属性的可能值为男或女
IsSpecial,TypeHaveChild,OrderIsConfirm的属性域为y/n
OrderSendStatus的属性域为0,1,2.0表示货还未发送,1表示货已发网上销售管理系统10042130127郭文静
送,但订购者还未收到,2表示货已到订购者手中。各日期的属性域是包含年-月-日时-分-秒的日期形式。
3.7确定候选键,主键和备用键属性
EntityAttributesMemberIDPasswordMemberNameRealNameTelephoneMobileEmailAddressZipAddDateAccumulatePointsSexCostumeIDCostumeNameCostumeTypeIDCostumeCostumeStyleCostumeBrandCostumeColorCostumeSizeCostumeTextureAddDateOrderDescCostumePriceCostumePointDescriptionKeyNullsMultivalued会员号(非空NoNo且唯一),自Primarykey动编号.会员登陆口NoNo令会员名字NoNo会员真实名NoNo字会员联系电NoYes话会员手机YesYes常用EmailNoYes家庭住址NoNo所在地的邮NoNo编成为会员的NoNo时间积分性别服装号(非空且唯一),自动编号.服装名字服装所属类别(eg:套装裙子)风格品牌颜色尺码质地添加时间定购说明服装价格网上该服装被浏览的次PrimarykeyForeignkeyNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoMember网上销售管理系统10042130127郭文静
数CostumeImgIsSpecialSpecailPriceTypeIDTypeNameCostumeTypeTypeFidTypeHaveChildTypeAddDateAdminIDAdminNamePasswordRealNameEmailAddDateAdmin该种服装的照片的URL标志是否为特价服装降价后的价格服装类型号Primarykey类型的名字类型父类型号是否有子类型添加时间管理员号Primarykey管理员名字管理员密码管理员真实名字管理员Email添加时间管理员具体身份(超级管理员,服装管理员,论坛管理员,公告管理员,用户管理员,订单管理员)NoNoNoNoNoYesNoNoNoNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoActorNoNoBulIDBulTitleBulContentBulAddDateBulletAdminIDBulPointOrderIDBusinessOrderOrderTime公告号Primarykey公告标题公告内容公告添加时间发布该公告Foreignkey的管理员ID该公告的浏览量订单号产生订单的间PrimarykeyNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo网上销售管理系统10042130127郭文静
OrderIsConfirmConfirmTimeConfirmAdminIDOrderSendStatusOrderRecNameOrderAddressOrderZipOrderMemberIDOrderTotalPriceOrderEmailOrderDetailIDOrderIDCostumeIDCostumeNumOrderPricepostidsubjectmessagenewpostposttimeuseridrepliesviewsreplyreplyid订单确认情况订单确认时间确认订单的管理员ID订单发送情况订单的收货人姓名订单的收货人地址订单的收货人邮编ForeingnkeyNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo产生订单的Foreignkey会员的ID订单的总价订单的收货人的EmailOrderDetail详细订单号Primarykey该项所对应Foreignkey的订单号该项所对应Foreignkey的服装号该服装购买的数量该服装总价每个帖子的Primarykeyid帖子主题帖子内容帖子发布时间发布帖子的Foreignkey会员的id帖子被回复的次数帖子被浏览的次数回复idPrimarykey网上销售管理系统10042130127郭文静
useridmessagereplytimepostidCostumeIDStoreLowest
Store进行回复的会员的id回复的内容回复的时间回复所针对的帖子的id库存中服装的id库存量库存量下限ForeignkeyForeignkeyPrimarykeyForeignkeyNoNoNoNoNoNoNoNoNoNoNoNoNoNo3.8模式图:
(该系统的模式图)
网上销售管理系统10042130127郭文静
3.9表支持的用户事务:
该系统的Devision视图的数据项和更新/删除事务所需的表
事务需求的表Admin(AdminID,AdminName,Password,RealName,Email,AddDate);Bullet(BulID,BulTitle,BulContent,BulAddDate,AdminID);外键AdimID引用Admin(AdminID)BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键ConfirmAdminID引用Admin(AdminID)Member(MemberID,Password,MemberName,RealName,Telephone,Mobile,Email,Address,Zip,AddDate,AccumulatePoints,Sex)BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键OrderMemberID引用Member(MemberID)Costume(CostumeID,CostumeName,CostumeTypeID,CostumeStyle,CostumeBrand,CostumeColor,CostumeSize,CostumeTexture,Addtion,AddDate,OrderDesc,CostumePrice,CostumePoint,CostumeImg,IsSpecial,SpecailPrice);外键CostumeTypeID引用CostumeType(TypeID)CostumeType(TypeID,TypeName,TypeFid,TypeHaveChild,TypeAddDate)OrderDetail(OrderDetailID,OrderID,StaffID,CostumeID,CostumeNum,OrderPrice);外键CostumeID引用Costume(CostumeID)CostumeType(TypeID,TypeName,TypeFid,TypeHaveChild,TypeAddDate)外键TypeFid引用CostumeType(TypeID)Costume(CostumeID,CostumeName,CostumeTypeID,CostumeStyle,CostumeBrand,CostumeColor,CostumeSize,CostumeTexture,Addtion,AddDate,OrderDesc,CostumePrice,CostumePoint,CostumeImg,IsSpecial,SpecailPrice);外键CostumeTypeID引用CostumeType(TypeID)录入新管理员的详细信息更新/删除管理员信息。录入新会员的详细信息更新/删除会员的信息。录入新服装的详细信息更新/删除服装的信息。录入新服装类型的详细信息更新/删除服装类型的信息网上销售管理系统10042130127郭文静
录入新的公告的详细信息更新/删除公告的信息录入新的订单的详细信息更新/删除订单的信息录入新的详细订单的详细信息更新/删除详细订单的信息列出指定服装的详细信息列出指定类型的服装信息Bullet(BulID,BulTitle,BulContent,BulAddDate,AdminID,BulPoint)外键AdminID引用Admin(AdminID)Admin(AdminID,AdminName,Password,RealName,Email,AddDate);BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键ConfirmAdminID引用Admin(AdmainID)Admin(AdminID,AdminName,Password,RealName,Email,AddDate);外键OrderMemberID引用Member(MemberID)Member(MemberID,Password,MemberName,RealName,Telephone,Mobile,Email,Address,Zip,AddDate,AccumulatePoints,Sex)OrderDetail(OrderDetailID,OrderID,StaffID,CostumeID,CostumeNum,OrderPrice);外键OrderID引用BusinessOrder(OrderID)OrderDetail(OrderDetailID,OrderID,StaffID,CostumeID,CostumeNum,OrderPrice);外键OrderID引用BusinessOrder(OrderID)BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键CostumeID引用Costume(CostumeID)Costume(CostumeID,CostumeName,CostumeTypeID,CostumeStyle,CostumeBrand,CostumeColor,CostumeSize,CostumeTexture,Addtion,AddDate,OrderDesc,CostumePrice,CostumePoint,CostumeImg,IsSpecial,SpecailPrice);Costume(CostumeID,CostumeName,CostumeTypeID,CostumeStyle,CostumeBrand,CostumeColor,CostumeSize,CostumeTexture,Addtion,AddDate,OrderDesc,CostumePrice,CostumePoint,CostumeImg,IsSpecial,SpecailPrice);外键CostumeTypeID引用CostumeType(TypeID)CostumeType(TypeID,TypeName,TypeFid,TypeHaveChild,TypeAddDate)CostumeType(TypeID,TypeName,TypeFid,TypeHaveChild,TypeAddDate)外键TypeFid引用CostumeType(TypeID)Costume(CostumeID,CostumeName,CostumeTypeID,CostumeStyle,CostumeBrand,CostumeColor,CostumeSize,CostumeTexture,Addtion,AddDate,OrderDesc,CostumePrice,Co网上销售管理系统10042130127郭文静
按照指定会员的详细信息列出指定管理员的详细信息列出指定公告的发布管理员的信息列出指定订单所对应的各详细订单的信息,按详细订单号排序列出指定订单所对应的会员的详细信息列出指定的详细订单所对应的服装的详细信息stumePoint,CostumeImg,IsSpecial,SpecailPrice);外键CostumeTypeID引用CostumeType(TypeID)Member(MemberID,Password,MemberName,RealName,Telephone,Mobile,Email,Address,Zip,AddDate,AccumulatePoints,Sex)BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键OrderMemberID引用Member(MemberID)Admin(AdminID,AdminName,Password,RealName,Email,AddDate);Bullet(BulID,BulTitle,BulContent,BulAddDate,AdminID);外键AdimID引用Admin(AdminID)BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键ConfirmAdminID引用Admin(AdminID)Bullet(BulID,BulTitle,BulContent,BulAddDate,AdminID,BulPoint)外键AdminID引用Admin(AdminID)Admin(AdminID,AdminName,Password,RealName,Email,AddDate);BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);OrderDetail(OrderDetailID,OrderID,CostumeID,CostumeNum,OrderPrice);外键OrderID引用BusinessOrder(OrderID)BusinessOrder(OrderID,OrderTime,OrderIsConfirm,ConfirmTime,ConfirmAdminID,OrderSendStatus,OrderRecName,OrderAddress,OrderZip,OrderMemberID,OrderTotalPrice,OrderEmail);外键OrderMemberID引用Member(MemberID)Member(MemberID,Password,MemberName,RealName,Telephone,Mobile,Email,Address,Zip,AddDate,AccumulatePoints,Sex)OrderDetail(OrderDetailID,OrderID,CostumeID,CostumeNum,OrderPrice);外键CostumeID引用Costume(CostumeID)Costume(CostumeID,CostumeName,CostumeTypeID,Costum网上销售管理系统10042130127郭文静
eStyle,CostumeBrand,CostumeColor,CostumeSize,CostumeTexture,Addtion,AddDate,OrderDesc,CostumePrice,CostumePoint,CostumeImg,IsSpecial,SpecailPrice);4.物理数据库设计
4.1设计基本表:
Admin:
1.表名:Admin2.所有者:dbo3.源代码:
CREATETABLE[dbo].[Admin](
[AdminID][int]IDENTITY(1000,1)NOTNULL,
[AdminName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[Actor][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Password][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[RealName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[Email][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,[AddDate][datetime]NOTNULL)ON[PRIMARY]GO
RANTSELECT,UPDATE,INSERT,DELETEON[dbo].[Admin]TO[超级管理员]GO
GRANTSELECTON[dbo].[Admin]TO[用户管理员]GO
GRANTSELECTON[dbo].[Admin]TO[订单管理员]GO
GRANTSELECTON[dbo].[Admin]TO[公告管理员]GO
GRANTSELECTON[dbo].[Admin]TO[服装管理员]GO
4.权限管理:
5.约束:
CONSTRAINT[PK_Admin]PRIMARYKEYCLUSTERED([AdminID])ON[PRIMARY],CONSTRAINT[IX_Admin_Name]UNIQUENONCLUSTERED([AdminName])ON[PRIMARY]网上销售管理系统10042130127郭文静
Bullet:
1.表名:Bullet2.所有者:dbo3.源代码:
CREATETABLE[dbo].[Bullet]([BulID][int]IDENTITY(1,1)NOTNULL,[BulTitle][varchar](100)COLLATEChinese_PRC_CI_ASNOTNULL,[BulContent][varchar](4000)COLLATEChinese_PRC_CI_ASNOTNULL,[BulAddDate][datetime]NOTNULL,[AdminID][int]NOTNULL,[BulPoint][int]NOTNULL)ON[PRIMARY]GO
4.权限管理:
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[Bullet]TO[公告管理员]
GOGRANTSELECTON[dbo].[Bullet]TO[会员]GO
5.约束:
CONSTRAINT[PK_Bullet]PRIMARYKEYCLUSTERED
([BulID])ON[PRIMARY],CONSTRAINT[IX_Bullet_Title]UNIQUENONCLUSTERED([BulTitle])ON[PRIMARY]
CONSTRAINT[FK_Bullet_Admin]FOREIGNKEY([AdminID])REFERENCES[dbo].[Admin]([AdminID])ONDELETECASCADEONUPDATECASCADE
BusinessOrder
1.表名:BusinessOrder
2.所有者:dbo3.源代码:
CREATETABLE[dbo].[BusinessOrder]([OrderID][int]IDENTITY(1000,1)NOTNULL,[OrderTime][datetime]NOTNULL,[OrderIsConfirm][varchar](2)COLLATEChinese_PRC_CI_ASNOTNULL,网上销售管理系统10042130127郭文静
[ConfirmTime][datetime]NULL,[ConfirmAdminID][int]NULL,[OrderSendStatus][int]NOTNULL,[OrderRecName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
[OrderAddress][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,
[OrderZip][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[OrderMemberID][int]NOTNULL,[OrderTotalPrice][money]NOTNULL,[OrderEmail][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,[OrderPhone][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,
DELETEON[dbo].[BusinessOrder]TO[订单管理员]GO
GRANTSELECTON[dbo].[BusinessOrder]TO[会员]GO
5.约束:
CONSTRAINT[PK_OrderInfo]PRIMARYKEYCLUSTERED([OrderID])ON[PRIMARY]
CONSTRAINT[FK_OrderInfo_Admin]FOREIGNKEY([ConfirmAdminID])REFERENCES[dbo].[Admin]([AdminID])ONDELETECASCADEONUPDATECASCADE,CONSTRAINT[FK_OrderInfo_Member]FOREIGNKEY([OrderMemberID])REFERENCES[dbo].[Member]([MemberID])ONDELETECASCADEONUPDATECASCADE
Costume
1.表名:Costume2.所有者:dbo3.源代码:
CREATETABLE[dbo].[Costume](网上销售管理系统10042130127郭文静
[CostumeID][int]IDENTITY(1000,1)NOTNULL,[CostumeName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
[TypeID][int]NOTNULL,[CostumeStyle][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[CostumeBrand][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[CostumeColor][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[CostumeSize][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[CostumeTexture][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[AddDate][datetime]NOTNULL,[CostumeIntroduce][varchar](4000)COLLATEChinese_PRC_CI_ASNOTNULL,
[OrderDesc][varchar](100)COLLATEChinese_PRC_CI_ASNOTNULL,[CostumePrice][money]NOTNULL,[CostumePoint][int]NOTNULL,[CostumeImg][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,[IsSpecial][varchar](2)COLLATEChinese_PRC_CI_ASNOTNULL,[SpecialPrice][money]NOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,
DELETEON[dbo].[Costume]TO[服装管理员]GO
GRANTSELECTON[dbo].[Costume]TO[会员]GO
5.约束:
CONSTRAINT[PK_Costume]PRIMARYKEYCLUSTERED([CostumeID])ON[PRIMARY]
CONSTRAINT[FK_Costume_CostumeType]FOREIGNKEY([TypeID])REFERENCES[dbo].[CostumeType]([TypeID])ONDELETECASCADEONUPDATECASCADE
CostumeType
1.表名:CostumeType
2.所有者:dbo3.源代码:网上销售管理系统10042130127郭文静
CREATETABLE[dbo].[CostumeType]([TypeID][int]IDENTITY(1000,1)NOTNULL,[TypeName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[TypeFid][int]NOTNULL,[TypeHaveChild][varchar](2)COLLATEChinese_PRC_CI_ASNOTNULL,[TypeAddDate][datetime]NOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,
DELETEON[dbo].[CostumeType]TO[服装管理员]GO
GRANTSELECTON[dbo].[CostumeType]TO[会员]GO
5.约束:
CONSTRAINT[PK_CostumeType]PRIMARYKEYCLUSTERED([TypeID])ON[PRIMARY],CONSTRAINT[IX_CostumeType_Name]UNIQUENONCLUSTERED([TypeName])ON[PRIMARY]
Member
1.表名:Member
2.所有者:dbo3.源代码:
CREATETABLE[dbo].[Member]([MemberID][int]IDENTITY(1000,1)NOTNULL,[MemberName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[Password][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[RealName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[Sex][varchar](2)COLLATEChinese_PRC_CI_ASNOTNULL,[Telephone][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,[Mobile][varchar](50)COLLATEChinese_PRC_CI_ASNULL,[Email][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,[Address][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,[Zip][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[AddDate][datetime]NOTNULL,[AccumulatePoints][int]NULL)ON[PRIMARY]GO网上销售管理系统10042130127郭文静
4.权限:
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[Member]TO[用户管理员]GO
GRANTSELECT,UPDATEON[dbo].[Member]TO[会员]GO
5.约束:
CONSTRAINT[DF_Member_Sex]DEFAULT("男")FOR[Sex],CONSTRAINT[PK_Member]PRIMARYKEYCLUSTERED([MemberID])ON[PRIMARY],CONSTRAINT[IX_Member_Name]UNIQUENONCLUSTERED([MemberID])ON[PRIMARY]
OrderDetail
1.表名:OrderDetail
2.所有者:dbo3.源代码:
CREATETABLE[dbo].[OrderDetail]([OrderDetailID][int]IDENTITY(1000,1)NOTNULL,[OrderID][int]NOTNULL,[CostumeID][int]NOTNULL,[CostumeNum][int]NOTNULL,[OrderPrice][money]NOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[OrderDetail]TO[订单管理员]
GOGRANTSELECTON[dbo].[OrderDetail]TO[会员]GO
5.约束:
CONSTRAINT[PK_OrderDetail]PRIMARYKEYCLUSTERED([OrderDetailID])ON[PRIMARY],
CONSTRAINT[CK_OrderDetail_CostumeNum]CHECK([CostumeNum]>0)CONSTRAINT[FK_OrderDetail_Costume]FOREIGNKEY([CostumeID]网上销售管理系统10042130127郭文静
)REFERENCES[dbo].[Costume]([CostumeID]
)ONDELETECASCADEONUPDATECASCADE,
CONSTRAINT[FK_OrderDetail_OrderInfo]FOREIGNKEY([OrderID]
)REFERENCES[dbo].[BusinessOrder]([OrderID]
)ONDELETECASCADEONUPDATECASCADE
Store
1.表名:Store2.所有者:dbo3.源代码:
CREATETABLE[dbo].[Store]([CostumeID][int]NOTNULL,[Store][int]NOTNULL,[Lowest][int]NOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[Store]TO[服装管理员]GO
5.约束:
CONSTRAINT[PK_Store]PRIMARYKEYCLUSTERED([CostumeID])ON[PRIMARY],CONSTRAINT[CK_Store_Lowest]CHECK([Lowest]>=0)CONSTRAINT[FK_Store_Costume]FOREIGNKEY([CostumeID])REFERENCES[dbo].[Costume]([CostumeID])ONDELETECASCADEONUPDATECASCADE
newpost
1.表名:newpost
2.所有者:dbo3.源代码:
CREATETABLE[dbo].[newpost]([postid][int]IDENTITY(1000,1)NOTNULL,[subject][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,网上销售管理系统10042130127郭文静
[posttime][datetime]NOTNULL,[userid][int]NOTNULL,[replies][int]NOTNULL,[postviews][int]NOTNULL,[message][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[newpost]TO[会员]GO
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[newpost]TO[论坛管理员]
GO5.约束:
CONSTRAINT[PK_newpost]PRIMARYKEYCLUSTERED([postid])ON[PRIMARY]
CONSTRAINT[FK_newpost_Member]FOREIGNKEY([userid])REFERENCES[dbo].[Member]([MemberID])ONDELETECASCADEONUPDATECASCADE
reply
1.表名:reply
2.所有者:dbo3.源代码:
CREATETABLE[dbo].[reply]([replyid][int]IDENTITY(1000,1)NOTNULL,[userid][int]NOTNULL,[message][varchar](200)COLLATEChinese_PRC_CI_ASNOTNULL,[postid][int]NOTNULL,[replytime][datetime]NOTNULL)ON[PRIMARY]GO
4.权限:
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[reply]TO[会员]GO
GRANTSELECT,UPDATE,INSERT,DELETEON[dbo].[reply]TO[论坛管理员]网上销售管理系统10042130127郭文静
GO5.约束:
CONSTRAINT[PK_reply]PRIMARYKEYCLUSTERED([replyid])ON[PRIMARY]
CONSTRAINT[FK_reply_Member]FOREIGNKEY([userid])REFERENCES[dbo].[Member]([MemberID])ONDELETECASCADEONUPDATECASCADE,CONSTRAINT[FK_reply_newpost]FOREIGNKEY([postid])REFERENCES[dbo].[newpost]([postid])
4.2为目标数据库管理系统设计业务规则:
4.2.1规则:rule[Sex]
createrule[Sex]as@in("男","女")GO
rule[TypeHaveChild]
createrule[TypeHaveChild]as@in("y","n")GO
rule[IsSpecial]
createrule[IsSpecial]as@in("y","n")GO
rule[OrderIsConfirm]
createrule[OrderIsConfirm]as@in("y","n")GO
rule[Actor]
createrule[Actor]as@in("超级管理员","用户管理员","论坛管理员","服装管理员","订单管理员","公告管理员")
GOrule[OrderSendStatus]
createrule[OrderSendStatus]as@in("0","1","2")GO
4.2.2触发器:
BusinessOrder_Delete
1.触发器名:BusinessOrder_Delete网上销售管理系统10042130127郭文静
2.所有者:dbo
3.所属表:BusinessOrder_4.功能:-当删除订购单BusinessOrder中的一条记录时,就删除该订购单所对应的所有详细订单的信息5.源代码:
-CREATETRIGGERBusinessOrder_DeleteONBusinessOrderFORDELETEAS
begin
declare@tint
select@t=OrderIDfromdeleted
deletefromOrderDetailwhereOrderID=@tendGO
CostumeDelete
1.触发器名:CostumeDelete2.所有者:dbo
3.所属表:Costume
4.功能:-当删除一种服装时,说明该系统不再出售该种服装,那么该服装所对应的订购单也要删除
5.源代码:
CREATETRIGGERCostumeDeleteONCostumeFORDELETEAS
begin
declare@tint
select@t=CostumeIDfromdeleted
deletefromOrderDetailwhereCostumeID=@tendGO
CostumeType_Delete
1.触发器名:CostumeType_Delete2.所有者:dbo
3.所属表:CostumeType4.功能:--删除服装类型表中的一条记录时,就删除该类型所对应的服装品种的信息
5.源代码:
CREATETRIGGERCostumeType_DeleteONCostumeTypeFORDELETEAS
begin
declare@tint
select@t=TypeIDfromdeleted
deletefromCostumewhereTypeID=@t网上销售管理系统10042130127郭文静
end
GoMember_Delete
1.触发器名:Member_Delete2.所有者:dbo3.所属表:Member
4.功能:--当删除会员表中的一条记录时,就删除该会员所对应的订购单信息
5.源代码:
CREATETRIGGERMember_DeleteONMemberFORDELETEASbegin
declare@tint
select@t=MemberIDfromdeleted
deletefromBusinessOrderwhereOrderMemberID=@tendGO
4.3设计物理表示法:
4.3.1分析事务
该数据库系统主要为一服装网的网上交易及会员间的交流提供后台支持,主要事务封装在30多个存储过中:
1.-添加服装类型,其中TypeFid为父类型号,如果无父类型,则填0,TypeHaveChild的值为y/n(其中TypeName属性有唯一约束,所以存储过程中不再对插入是否重复进行处理)存储过程名:AddCostumeType所有者:dbo源代码:
CREATEprocAddCostumeType@TypeNamevarchar(50),@TypeFidint,
@TypeHaveChildchar(2)AS
begin
insertintoCostumeType(TypeName,TypeFid,TypeHaveChild,TypeAddDate)values(@TypeName,@TypeFid,@TypeHaveChild,getdate())print"成功添加该服装类型"endGO
权限:
GRANTEXECUTEON[dbo].[AddCostumeType]TO[服装管理员]网上销售管理系统10042130127郭文静
GO测试数据:
ExecuteAddCostumeTypeT恤,0,y
2.-添加服装(品种),Costume的每项记录为一种服装的信息存储过程名:AddCostume所有者:dbo源代码:
CREATEprocAddCostume@strNamevarchar(50),@strTypeint,
@strColorvarchar(20),@strBrandvarchar(20),@strTexturevarchar(20),@strSizevarchar(20),@strStylevarchar(20),@urlvarchar(200),@strIntroducevarchar(4000),@strOrderDescvarchar(100),@strPricemoney
asbegin
ifexists(select*fromCostumewhereCostumeName=@strNameandCostumeColor=@strColorandCostumeBrand=@strBrandandCostumeTexture=@strTextureandCostumeStyle=@strStyleandCostumeSize=@strSize)print"该服装品中已存在"else
begin
InsertintoCostume(CostumeName,TypeID,CostumeColor,CostumeBrand,CostumeTexture,CostumeStyle,CostumeSize,AddDate,CostumeImg,CostumeIntroduce,OrderDesc,CostumePrice,CostumePoint,IsSpecial,SpecialPrice)values
(@strName,@strType,@strColor,@strBrand,@strTexture,@strStyle,@strSize,getdate(),
@url,@strIntroduce,@strOrderDesc,@strPrice,"0","n",@strPrice)print"成功添加该种服装"endendGO
权限:网上销售管理系统10042130127郭文静
GRANTEXECUTEON[dbo].[AddCostume]TO[服装管理员]GO
测试数据:
ExecuteAddCostume经典米奇头像,1016,粉色,other,棉莱卡,中,街头,image1,立刻购买购买即送点数参加四周年抽奖大奖等你拿,此宝贝支持支付宝,45
3.添加该系统管理员,只有超级管理员有这个权限(其中AdminName属性有唯一约束,要求每个管理员有不同的用户名,所以存储过程中不再对插入是否重复进行处理)
存储过程名:AddAdmin
所有者:dbo源代码:
CREATEprocAddAdmin
@AdminNamevarchar(50),@Actorvarchar(20),@Passwordvarchar(50),@RealNamevarchar(50),@Emailvarchar(200)as
begininsertintoAdmin(AdminName,Actor,Password,RealName,Email,AddDate)values(@AdminName,@Actor,@Password,@RealName,@Email,getdate())endGo
权限:
GRANTEXECUTEON[dbo].[AddAdmin]TO[超级管理员]GO
测试数据:
ExecuteAddAdmindolphin2,论坛管理员,127,dolphin,dol@163com4.--管理员添加网上公告,这里的属性AdminID为添加公告的管理员的id,BulPoint为该公告的网上浏览量,初始值为0
存储过程名:AddBullet
所有者:dbo相关代码:
createprocAddBullet
@BulTitlevarchar(100),
@BulContentvarchar(4000),@AdminIDintas
begin
ifexists(select*fromBulletwhereBulTitle=@BulTitle)print"该公告已存在"网上销售管理系统10042130127郭文静
else
begin
Insert
Bullet(BulTitle,BulContent,BulAddDate,AdminID,BulPoint)(@BulTitle,@BulContent,getdate(),@AdminID,"0")print"成功添加一公告"endendGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[AddBullet]TO[公告管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
intovalues
5.在论坛中发布新帖:
存储过程名:AddNewpost
所有者:dbo相关代码:
createprocAddNewpost
@subjectvarchar(200),@useridint,
@messagevarchar(200)as
begin
insertintonewpost(subject,userid,message,posttime,views,replies)values(@subject,@userid,@message,getdate(),"0","0")endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[AddNewpost]TO[会员]GO网上销售管理系统10042130127郭文静
GRANTEXECUTEON[dbo].[AddNewpost]TO[论坛管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
6.在论坛中发布回复留言
存储过程名:AddReplies
所有者:dbo相关代码:
createprocAddReplies@useridint,
@messagevarchar(200),@postidintas
begin
Insertintoreply(userid,message,postid,replytime)values(@userid,@message,@postid,getdate())endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[AddReplies]TO[会员]GO
GRANTEXECUTEON[dbo].[AddReplies]TO[论坛管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
7.管理员登陆:
存储过程名:AdminLogin
所有者:dbo相关代码:
createprocAdminLogin@idint,网上销售管理系统10042130127郭文静
@passwordvarchar(50)as
begin
ifexists(select*fromAdminwhereAdminID=@idandPassword=@password)print"成功登陆"else
print"用户名或密码错误,登陆失败"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[AdminLogin]TO[超级管理员]GO
GRANTEXECUTEON[dbo].[AdminLogin]TO[用户管理员]GO
GRANTEXECUTEON[dbo].[AdminLogin]TO[订单管理员]GO
GRANTEXECUTEON[dbo].[AdminLogin]TO[公告管理员]GO
GRANTEXECUTEON[dbo].[AdminLogin]TO[服装管理员]GO
GRANTEXECUTEON[dbo].[AdminLogin]TO[论坛管理员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
8.--修改管理员信息
存储过程名:ChangeAdminInfo
所有者:dbo相关代码:
CREATEprocChangeAdminInfo@idint,
@Actorvarchar(20),
@adminNamevarchar(50),@adminPswvarchar(50),
@adminRealNamevarchar(50),@adminEmailvarchar(200)as
begin
ifexists(select*fromAdminwhereAdminID=@id)网上销售管理系统10042130127郭文静
begin
updateAdminsetAdminName=@adminName,Actor=@Actor,
Password=@adminPsw,RealName=@adminRealName,Email=@adminEmailwhereAdminID=@id
print"成功修改i管理员信息"endelse
print"该管理员不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ChangeAdminInfo]TO[超级管理员]GO
GRANTEXECUTEON[dbo].[ChangeAdminInfo]TO[用户管理员]GO
GRANTEXECUTEON[dbo].[ChangeAdminInfo]TO[订单管理员]GO
GRANTEXECUTEON[dbo].[ChangeAdminInfo]TO[公告管理员]GO
GRANTEXECUTEON[dbo].[ChangeAdminInfo]TO[服装管理员]GO
GRANTEXECUTEON[dbo].[ChangeAdminInfo]TO[论坛管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
9.--管理员修改自己添加的公告的基本信息,关于其属性浏览量,因为在动态变化,所以单独拎出来由另一存储过程完成其更新
存储过程名:ChangeBullet
所有者:dbo相关代码:
createprocChangeBullet@BulIDint,@AdminIDint,
@BulTitlevarchar(100),@BulContentvarchar(4000)as
begin
ifexists(select*fromBulletwhereBulID=@BulID)网上销售管理系统10042130127郭文静
updateBulletsetBulTitle=@BulTitle,BulContent=@BulContentwhereBulID=@BulIDandAdminID=@AdminIDelse
print"修改i失败"endGO
GRANTEXECUTEON[dbo].[ChangeBullet]TO[公告管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ChangeBullet]TO[公告管理员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
10.--修改服装基本信息(其中浏览量,特价等属性由于是在变化的,修改较为频繁,所以单独拎出来由另外存储过程来处理)
存储过程名:ChangeCostumeInfo
所有者:dbo相关代码:
CREATEprocChangeCostumeInfo@idint,
@strNamevarchar(50),@strTypeint,
@strColorvarchar(20),@strBrandvarchar(20),@strTexturevarchar(20),@strSizevarchar(20),@strStylevarchar(20),@urlvarchar(200),@strIntroducevarchar(4000),@strOrderDescvarchar(100),@strPricemoneyas
begin
ifexists(select*fromCostumewhereCostumeID=@id)begin
updateCostumesetCostumeName=@strName,TypeID=@strType,CostumeColor=@strColor,CostumeBrand网上销售管理系统10042130127郭文静
=@strBrand,CostumeTexture=@strTexture,CostumeStyle=@strStyle,CostumeSize=@strSize,
AddDate=getdate(),CostumeImg=@url,CostumeIntroduce=@strIntroduce,OrderDesc=@strOrderDesc,CostumePrice=@strPricewhereCostumeID=@id
print"成功修改该服装信息"endelse
print"该服装不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ChangeCostumeInfo]TO[服装管理员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
11.--修改服装类型,的相关信息,其中TypeFid为父类型号,如果无父类型,则填0,TypeHaveChild的值为y/n
存储过程名:ChangeCostumeType
所有者:dbo相关代码:
CREATEprocChangeCostumeType@idint,
@TypeNamevarchar(50),@TypeFidint,
@TypeHaveChildchar(2)AS
begin
ifexists(select*fromCostumeTypewhereTypeID=@id)begin
updateCostumeTypesetTypeName=@TypeName,TypeFid=@TypeFid,TypeHaveChild=@TypeHaveChildwhereTypeID=@id
print"成功修改服装类型的相关信息"endelse
print"该服装类型不存在"end网上销售管理系统10042130127郭文静
GOSETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ChangeCostumeType]TO[服装管理员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
12.--修改会员信息
存储过程名:ChangeMemberInfo
所有者:dbo相关代码:
CREATEprocChangeMemberInfo@idint,
@strNamevarchar(50),@strPswvarchar(50),
@strRealNamevarchar(50),@strSexvarchar(2),@strPhonevarchar(50),@strMobilevarchar(50),@strEmailvarchar(200),@strAddrvarchar(200),@strZipvarchar(20)as
begin
ifexists(select*fromMemberwhereMemberID=@id)beginupdateMembersetMemberName=@strName,Password=@strPsw,RealName=@strRealName,Sex=@strSex,Telephone=@strPhone,Mobile=@strMobile,Email=@strEmail,Address=@strAddr,Zip=@strZip,AddDate=getdate()whereMemberID=@id
print"修改成功!"endelse
print"该会员不存在"endGO网上销售管理系统10042130127郭文静
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ChangeMemberInfo]TO[用户管理员]GO
GRANTEXECUTEON[dbo].[ChangeMemberInfo]TO[会员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
13.--更新货物发送状态,即修改i订单的OrderSendStatus属性
存储过程名:ChangeSendStatus
所有者:dbo相关代码:
createprocChangeSendStatus@OrderIDint,
@OrderSendStatusintas
begin
ifexists(select*fromBusinessOrderwhereOrderID=@OrderID)updateBusinessOrdersetOrderSendStatus=@OrderSendStatuselse
print"该订单不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ChangeSendStatus]TO[订单管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
14--管理员对订单进行确认
存储过程名:ConfirmBusinessOrder所有者:dbo相关代码:
createprocConfirmBusinessOrder@OrderIDint,网上销售管理系统10042130127郭文静
@ConfirmAdminIDintas
begin
ifexists(select*fromBusinessOrderwhereOrderID=@OrderID)updateBusinessOrdersetOrderIsConfirm="y",ConfirmTime=getdate(),ConfirmAdminID=@ConfirmAdminIDwhereOrderID=@OrderIDelse
print"该订单不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[ConfirmBusinessOrder]TO[订单管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
15删除管理员:
存储过程名:DeleteAdmin所有者:dbo相关代码:
createprocDeleteAdmin@AdminIDintas
begin
ifexists(select*fromAmdinwhereAdminID=@AdminID)deletefromAdminwhereAdminID=@AdminIDelse
print"该管理员不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[DeleteAdmin]TO[超级管理员]GO
SETQUOTED_IDENTIFIEROFFGO网上销售管理系统10042130127郭文静
SETANSI_NULLSOFFGO
16.删除一些过期公告:
存储过程名:DeleteBullet所有者:dbo相关代码:
CREATEprocDeleteBullet@idintas
begin
ifexists(select*fromBulletwhereBulID=@id)begin
deletefromBulletwhereBulID=@idprint"删除该公告信息!"endelse
print"该公告不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[DeleteBullet]TO[公告管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
17.删除服装:
存储过程名:DeleteCostume所有者:dbo相关代码:
createprocDeleteCostume@idintas
begin
ifexists(select*fromCostumewhereCostumeID=@id)begin
deletefromCostumewhereCostumeID=@idprint"成功删除该服装"end网上销售管理系统10042130127郭文静
else
print"该服装不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[DeleteCostume]TO[服装管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
18.--删除服装类型
存储过程名:DeleteCostumeType所有者:dbo相关代码:
CREATEprocDeleteCostumeType@idintas
begin
ifexists(select*fromCostumeTypewhereTypeID=@id)begin
ifexists(select*fromCostumrTypewhereTypeFid=@id)
begin
deletefromCostumeTypewhereTypeFid=@id
print"该类型有子类型,并已成功删除"endelse
print"该类型无子类型"
deletefromCostumeTyoewhereTypeID=@idprint"成功删除该服装类型"endelse
print"该服装类型不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSON网上销售管理系统10042130127郭文静
GOGRANTEXECUTEON[dbo].[DeleteCostumeType]TO[服装管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
19.--删除某一会员
存储过程名:DeleteMember所有者:dbo相关代码:
CREATEprocDeleteMember@MemberIDintas
begin
ifexists(select*fromMemberwhereMemberID=@MemberID)begin
deletefromMemberwhereMemberID=@MemberIDprint"成功删除该会员信息!"endelse
print"该会员不存在,请重新输入会员号"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[DeleteMember]TO[用户管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
20.论坛管理员删除一些垃圾帖或会员删除自己所发帖:
存储过程名:DeletePost所有者:dbo相关代码:
createprocDeletePost@idintas
begin网上销售管理系统10042130127郭文静
ifexists(select*fromnewpostwherepostid=@id)deletefromnewpostwherepostid=@idelse
print"该帖子不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[DeletePost]TO[会员]GO
GRANTEXECUTEON[dbo].[DeletePost]TO[论坛管理员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
21.论坛管理员删除一些垃圾回复或会员删除自己的回复留言:
存储过程名:DeleteReply所有者:dbo相关代码:
CREATEprocDeleteReply@replyidintas
begin
ifexists(select*fromreplywherereplyid=@replyid)deletefromreplywherereplyid=@replyidelse
print"该留言不存在"endGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[DeleteReply]TO[会员]GO
GRANTEXECUTEON[dbo].[DeleteReply]TO[论坛管理员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFF网上销售管理系统10042130127郭文静
GO22.--查看管理员信息,管理员号从1000自动编号,若要查询所有管理员信息,则输入参数为0,此时从视图vi_Admin1中查找,看不到密码,若是查看自己的信息,则可看到密码
存储过程名:GetAdminInfo所有者:dbo相关代码:
CREATEprocGetAdminInfo@idintas
begin
if(@id=0)begin
print"所有管理员信息"
select*fromvi_AdminListendelse
select*fromAdminwhereAdminID=@idendGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[GetAdminInfo]GO
GRANTEXECUTEON[dbo].[GetAdminInfo]GO
GRANTEXECUTEON[dbo].[GetAdminInfo]GO
GRANTEXECUTEON[dbo].[GetAdminInfo]GO
GRANTEXECUTEON[dbo].[GetAdminInfo]GO
GRANTEXECUTEON[dbo].[GetAdminInfo]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
23.--列出浏览量为某个数值以上的公告
存储过程名:GetBulAccodPoint所有者:dbo相关代码:
TO[超级管理员]TO[用户管理员]TO[订单管理员]TO[公告管理员]TO[服装管理员]TO[论坛管理员]网上销售管理系统10042130127郭文静
CREATEprocGetBulAccodPoint
@llimitintas
select*fromvi_Bullet_PointwhereBulPoint>=@llimitGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[GetBulAccodPoint]TO[公告管理员]GO
GRANTEXECUTEON[dbo].[GetBulAccodPoint]TO[会员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
24.获得指定公告信息:
存储过程名:GetBulletInfo所有者:dbo相关代码:
createprocGetBulletInfo@idintas
begin
if(@id=0)
select*fromBulletelse
select*fromBulletwhereBulID=@idendGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[GetBulletInfo]TO[公告管理员]GO
GRANTEXECUTEON[dbo].[GetBulletInfo]TO[会员]GO
SETQUOTED_IDENTIFIEROFFGO网上销售管理系统10042130127郭文静
SETANSI_NULLSOFFGO
25.--查看会员的订购单
存储过程名:GetBusinessOrder所有者:dbo相关代码:
CREATEprocGetBusinessOrder@MemberIDintasbegin
if(@MemberID=0)
select*fromBusinessOrderelseselect*fromBusinessOrderwhereOrderMemberID=@MemberIDendGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[GetBusinessOrder]TO[订单管理员]GO
GRANTEXECUTEON[dbo].[GetBusinessOrder]TO[会员]GO
SETQUOTED_IDENTIFIERONGO
SETANSI_NULLSOFFGO
26.--查看会员信息,会员号从1000自动编号,若要查询所有会员的信息,则输入参数为0,此时从视图vi_Member1中查找,看不到密码,若是查看自己的信息,则可看到密码
存储过程名:GetMemberInfo所有者:dbo相关代码:
CREATEprocGetMemberInfo@MemberIDintasbegin
if(@MemberID=0)begin
print"所有会员信息"
select*fromvi_Member_Admin网上销售管理系统10042130127郭文静
endelse
select*fromMemberwhereMemberID=@MemberIDendGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[GetMemberInfo]TO[用户管理员]GO
GRANTEXECUTEON[dbo].[GetMemberInfo]TO[会员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
27.--查看某一时间段的订单
存储过程名:GetOrderAccordingTime所有者:dbo相关代码:
CREATEprocGetOrderAccordingTime
@timesdatetime,@timefdatetimeas
select*fromvi_BusinessOrderTimewhereOrderTimebetween@timesand@timefGO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSONGO
GRANTEXECUTEON[dbo].[GetOrderAccordingTime]TO[订单管理员]GO
SETQUOTED_IDENTIFIEROFFGO
SETANSI_NULLSOFFGO
28.--查看某一订单的各项订购的详细情况
存储过程名:GetOrderDetail所有者:dbo
友情提示:本文中关于《项目小结之数据库设计》给出的范例仅供您参考拓展思维使用,项目小结之数据库设计:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。