数据库设计文档模板_第1页
数据库设计文档模板_第2页
数据库设计文档模板_第3页
免费预览已结束,剩余51页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*中心开发部文档编号2011-6-14版本A1密级商密A项目名称时代集团产品跟踪平台项目来源时代集团DR-RD-020(V1 .1)数据库设计说明书(内部编 写: 检 查: 审 核: 批 准:资料请勿外传)日期:日期:日期:日期:*版权所有不得复制时代集团产品跟踪平台错误!未定义书签数据库设计说明书 11弓I言31.1 编写目的 31.2 术语表 31.3 参考资料 32 数据库环境说明33 数据库的命名规则44 逻辑设计45 物理设计45.1 表汇总 55.2 表X : XXX 表 55.3 视图的设计 245.4 存储过程、函数及触发器的设计 246 安全性设计476.1 防止用户直接操作

2、数据库的方法 476.2 用户帐号密码的加密方法 476.3角色与权限487 优化488 数据库管理与维护说明 491引言1.1 编写目的本文档是时代集团产品跟踪平台概要设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循SQL数据库设计和开发规范。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2 术语表序号术语或缩略语说明性定义1ESIDEn terStorageld 入库编号2ProldProductld产品编号3PMIDProductManagerld产品管理员编号1.3 参考资料资料名称作者文

3、件编号、版本资料存放地点2 数据库环境说明数据库数据库系统数据库数据库设数据库存说明部署环实例境计工具放位置3数据库的命名规则数据库名称:时代集团的英文名称time-group表名:英文(表的用途)+下划线+英文字段名:相关属性的英文名4 逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD。如果采用面向对象方法(OOAD,这里实体相当于类(class )。5 物理设计提示:(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们 并不一定是一 一对应的。5.1 表

4、汇总表名功能说明En ter_storage产品入库(新产品的登记、修改、查询)Exit_storage产品出库(登记产品出库信息)Sellernfo销售商信息维护表(对销售商信息的添加、修改和查询)Productnfo产品信息表(对新产品的发布,修改,查询等维护)Repairnfo维修表(对已出售产品的维修进行登记,修改)L管理员表(包含五种身份,销售人员,库存管理人员,售后服务人员,产品信息管理人员,系统管理员)5.2 表:表的索引:索引是否建立要根据具体的业务需求来确定。允许为空:不填的表示为“是”。唯一:不填的表示为“是”。表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时

5、间如果量大可以按每天,如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考,当字段值唯一时可以不考虑,当字段值不唯一时,估算一个区别度,近似即可。例如:如果一个表的 NAM字段有共2000个值,其中有1999个不 同值,1999/2000=0.99越接近1区别度越高,反之区别度越低。表的并发:根据具体的业务需求预测表的并发。1.表名En ter_storage数据库用户库存管理人员主键ESID入库产品编号其他排序字段Product , date , num,storageManagerld索引字段序字段名称数据类型允许唯区别默认约束条件/号(精度范为空-一一

6、度值说明围)Y/NY/N1ESIDintNY2ProductVarchar(50NN)3dateSmallDateTNNime4numVarchar(50)NN5storageMa nagerIdVarchar(50)NYMysql脚本CREATE TABLE dbo.E nter_storage( ESID i nt IDENTITY(1,1) NOT NULL, product varchar(50) NOT NULL, date smalldatetime NOT NULL,n um varchar (6) NOT NULL,storageMa nagerld nvarchar(50)

7、NOT NULL,CONSTRAINPK_addStorage PRIMARYKEYCLUSTEREQ(ESID ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYGOSET ANSI_PADDING OFFGO记录数增长量表的并发补充说明2.表名Exit_storage数据库用户库存管理人员主键ExitStorageld出库产口口编号其他排序字段Product,

8、 date,num,storageManagerld索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯Y/N区别度默认值约束条件/说明1ExitStorageldintNY2ProductVarchar(50)NN3dateSmallDateT imeNN4numVarchar(50)NN5storageMa nagerIdVarchar(50)NYH S山一00NO STInNI_SN<一山 S -* 6goocoLLocxlE、o§os K6e01sl2u山二 oqp- 2qe_L Aodqo *00tooN_QCI<dl_SN<一山 S00>M&l

9、t;IAI 正 d一 NO ( LkM<IAI_Md一 no (No H syool山0<dlM0-n<-No 001IM0MIM0-n<-zuo H >myldncr 山 mono-lijzio h _dl/loo山 MONISO_LS_L<_LS -to H X 山 QN_lcl<d) H_L_M( os<ma)6e0co±x) 山_Lsrno>5>kM<l/l_Md N6eocoqnslydilN<M_LSNOo 1nN _LON (9=elpe>Enul 1nN _LON HE一ep_eES二 1n

10、N _LON (09)員。e>呂 npoa 丄 inNLON (L-L)>_L匚N 山 Q 一 呂二 ma)6e0co±x 邑 )H6e9SJX5=0q2 山 18<_L 山 _L<山 MoMs 一bsA|/l记录数增长量表的并发补充说明3.表名Sellernfo数据库用户销售商管理员主键n ame其他排序字段telephone , address,product, stockNum, stockDate ,stockPrice索引字段序字段名称数据类型允许唯一区别默认约束条件/说号(精度范为空Y/N度值明围)Y/N1n ameVarchar(50NY)2te

11、lepho nVarchar(50NNe)3addressSmallDateT imeNN4productVarchar(50)NN5stockNumVarchar(50)NN6stockDat eSmallDateT imeNN7stockPri ceVarchar(50)NNCREATE TABLE dbo.Seller_info(name varchar(50) NOT NULL,telephone varchar(20) NOT NULL,address varchar(50) NOT NULL,product varchar(50) NOT NULL,stockNum varchar

12、(6) NOT NULL,stockDate smalldatetime NOT NULL,stockPrice varchar(10) NOT NULL,CONSTRAINT PK_maketer_lnfo PRIMARY KEY CLUSTERE(name ASC)WITH (PADNDEX = OFF, STATISTICS NORECOMPUTEOFF, IGNORE DUP KE¥ OFF, ALLOW ROW LOCKS ON,ALLOW PAGE LOCKS = ON) ON PRIMARY)ON PRIMARYOOSET ANSI PADDING OFFOO/* Ob

13、ject: Table dbo.Repair info Scripts记录数增长量表的并发补充说明4.表名Productnfo数据库用户产品信息管理人员主键prold其他排序字段name price ,proDate, storage索引字段序字段名称数据类型允许唯区别默认约束条件/号(精度范为空一一一度值说明围)Y/NY/N1proldintNY2n ameVarchar(50NN)3priceVarchar(50NN)4proDateSmallDateT imeNN5storageVarchar(50)NYprold int IDENTITY(1,1) NOT NULL,n ame var

14、char(50) NOT NULL,price varchar(6) NOT NULL,proDate smalldatetime NOT NULL,storage varchar NOT NULL,CONSTRAINT PK_product_lnfoPRIMARY KEY,CLUSTERED(proId ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYGOSE

15、T ANSI_PADDING OFFGO/* Object: Table dbo.Logi n ScriptDate: 01/17/2011 16:00:59 */记录数增长量表的并发补充说明5.表名Repairnfo数据库用户售后服务人员主键repairld产品维修编号其他排序字段repairName, repairtel , product, customer, date, customertel索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯Y/N区别度默认值约束条件/说明1repairldintNY2repairNameVarchar(50)NN3repairtelSmallD

16、ateT imeNN4productVarchar(50)NN5customerVarchar(50)NNdateSmallDateT imeNNcustomert elVarchar(50)NNMysq-CREATE TABLE abo 二 Repar'info= repaid 二5'q _DENT_TY(13 NOT NULL epairName 二 ncharoo) NUF repairte-二 ncharoo) NUF moducsvacha=50) NOT NULL ousfomer二 vachan(20) NOT NUF rdafe二 sma=da(Dfimel N

17、OT NULL ousfomerte一二 ncharoo) NUF CONSTR>NT LPKITab_e二 PR_MARY KEY CLUSTERED(repair-dl ASC)W_TH (PADNDEX H OFF- STAT_ST_CSINORECOMPUTE OFF_GNOREIDUPIKE¥OFR ALL1IR1ILOCKS oz ALLOWIPAGEILOCKS H ON) ON -PR-MARY-)ON LPR_MARY一GOSET ANS厂PADD乏G OFFGOobjecrrTab-erdbo 二 producfinfo记录数增长量表的并发补充说明6.表名L

18、og in数据库用户管理人员主键userId用户编号其他排序字段password,userName tel, birthday,registerTime ,type索引字段序字段名称数据类型允许唯区别默认约束条件/说号(精度范为空一一一度值明围)Y/NY/N1useridintNY2passwordVarchar(50NN)3userNameSmallDateTNNime4telVarchar(50)NN5birthdayVarchar(50)NN6registerTi meSmallDateT imeNN7typeVarchar(50)NNM_Q_sGSG二AOWCCOoo|=-oR務卫产

19、N 兄盘土星曙聲盘EI-MO 占互乂三1芋§§孟吾互gg'O oO弓字m普'岂二牙斤g仪|P"m召mg"字今gg记录数增长量表的并发补充说明5.3 视图的设计根据XXX产品的概要设计文档来确定。视图的命名按照XX数据库设计规范中关于视图的命名规范命名。视图的设计应注意以下几点:1尽量减少列中使用的公式。2去掉所有不必要的列。3不要使同一个文档属于多个分类。4避免使用表单公式。5.4 存储过程、函数及触发器的设计存储过程及触发器的命名按照XX数据库设计规范中关于存储过程及触发器的命名 规范命名。存储过程:根据具体得业务逻辑确定输入参数个数,

20、类型,确定对哪几个表进行何种作。在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由 其他提供功能的过程。例如:不要定义强制数据完整性的过程 (使用完整性约 束)。函数 :函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQL命令中使用函数。就好像建立自己的 substr函数一样触发器 :触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用 户定义这些程序,然后在相关的表,视图或者数据库动作执行insert ,update 或 delete 语句时执行。 1. 存储过程:CREAT

21、E PROCEDUERnEter_storage_GetMaxIdASDECLARETempIDintSELECTTempID= max( ESID)+ 1 FROM Enter_storage IF TempIDIS NULLRETURN1ELSERETURNTempIDCREATE PROCEDUERnEter_storage_Exists ESIDintASDECLARETempIDintSELECTTempID= count (1) FROM Enter_storage WHER ESID=ESIDIF TempID= 0RETURN0ELSERETURN1CREATE PROCEDU

22、ERnEter_storage_ADDESIDint output ,product varchar (50),date smalldatetime ,numvarchar (6),storageManagerId nvarchar (50)ASINSERT INTO Enter_storage ( product , date , num, storageManagerId ) VALUE(Sproduct, date, num, storageManagerId)SET ESID= IDENTITYCREATE PROCEDUERnEter_storage_UpdateESIDint ,p

23、roduct varchar (50),date smalldatetime ,numvarchar (6),storageManagerId nvarchar (50)ASUPDATE Enter_storage SETnum, storageManagerId = product = product, date = date, num = storageManagerIdWHER ESID=ESIDCREATE PROCEDUERnEter_storage_Delete ESIDintASDELETE Enter_storage WHER ESID=ESIDCREATE PROCEDUER

24、nEter_storage_GetModelESIDintASSELECTESID, product , date , num, storageManagerIdFROM Enter_storage WHER ESID=ESIDCREATE PROCEDUERnEter_storage_GetListASSELECTESID, product , date , num, storageManagerIdFROM Enter_storage CREATE PROCEDUERxEit_storage_GetMaxIdASDECLARETempIDintSELECTTempID= max( Exit

25、StorageId )+ 1 FROM Exit_storage IF TempIDIS NULLRETURN1ELSERETURNTempIDCREATE PROCEDUERxEit_storage_ExistsExitStorageId intASDECLARETempIDintSELECTTempID= count (1) FROM Exit_storage WHEREExitStorageId =ExitStorageIdIF TempID= 0RETURN0ELSERETURN1CREATE PROCEDUERxEit_storage_ADDExitStorageId int out

26、put ,product varchar (50),date smalldatetime ,numvarchar (6),storageManagerId nvarchar (50)ASINSERT INTO Exit_storage ( product , date , num, storageManagerId ) VALUE(Sproduct, date, num, storageManagerId)SET ExitStorageId = IDENTITYCREATE PROCEDUERxEit_storage_UpdateExitStorageId int , product varc

27、har (50),date smalldatetime ,numvarchar (6),storageManagerId nvarchar (50)ASUPDATE Exit_storage SETnum, storageManagerId = product = product, date = date, num =storageManagerIdWHER ExitStorageId =ExitStorageIdCREATE PROCEDUERxEit_storage_DeleteExitStorageId intASDELETE Exit_storage WHER ExitStorageI

28、d =ExitStorageIdCREATE PROCEDUERxEit_storage_GetModel ExitStorageId intASSELECTExitStorageId , product , date , num, storageManagerIdFROM Exit_storage WHER ExitStorageId =ExitStorageIdCREATE PROCEDUERxEit_storage_GetListASSELECTExitStorageId , product , date , num, storageManagerIdFROM Exit_storage

29、CREATE PROCEDULRoEgin_ExistsuserId varchar (10)ASDECLARETempIDintSELECTTempID= count (1) FROM Login WHEREuserId =userIdIF TempID= 0RETURN0ELSERETURN1CREATE PROCEDULRoEgin_ADDuserId varchar (10),password varchar (16),userNamevarchar (20),tel varchar (20),birthday smalldatetime ,registerTime smalldate

30、time ,type nvarchar (50)ASINSERT INTO Login ( userId , password, userName, tel , birthday , registerTime , type ) VALUE(SuserId, password, userNam,etel, birthday , registerTime , typeCREATE PROCEDULRoEgin_UpdateuserId varchar (10),password varchar (16),userNamevarchar (20),tel varchar (20),birthday

31、smalldatetime ,registerTime smalldatetime ,type nvarchar (50)ASUPDATE Login SET password = password, userName = userNam,e tel = tel , birthday =birthday , registerTime = registerTime , type = typeWHEREuserId =userIdCREATE PROCEDULRoEgin_DeleteuserId varchar (10)DELETE Login WHEREuserId =userIdCREATE

32、 PROCEDULRoEgin_GetModeluserId varchar (10)ASSELECTuserId , password, userName, tel , birthday , registerTimeFROM Login WHEREuserId =userIdCREATE PROCEDULRoEgin_GetListASSELECTuserId , password, userName, tel , birthday , registerTimeFROM Login ,type,typeCREATE PROCEDUPRrEoduct_info_GetMaxIdDECLARET

33、empIDintSELECTTempID= max( proId )+ 1 FROM Product_info IF TempIDIS NULLRETURN1ELSERETURNTempIDCREATE PROCEDUPRrEoduct_info_ExistsproId intASDECLARETempIDintSELECTTempID= count (1) FROM Product_info WHEREproId =proIdIF TempID= 0RETURN0ELSERETURN1CREATE PROCEDUPRrEoduct_info_ADDproId int output , nam

34、evarchar (50),price varchar (6),proDate smalldatetime ,storage varchar (4)ASINSERT INTO Product_info ( name, price , proDate , storage ) VALUE(Snam,eprice, proDate, storage)SET proId = IDENTITYCREATE PROCEDUPRrEoduct_info_UpdateproId int ,namevarchar (50), price varchar (6),proDate smalldatetime sto

35、rage varchar (4)ASUPDATE Product_info SETstorage name = nam,e price = price, proDate = proDate, storage =WHEREproId =proIdCREATE PROCEDUPRrEoduct_info_DeleteproId intASDELETE Product_info WHEREproId =proIdCREATE PROCEDUPRrEoduct_info_GetModelproId intASSELECTproId , name, price , proDate , storageFR

36、OM Product_info WHEREproId =proIdCREATE PROCEDUPRrEoduct_info_GetListASSELECTproId , name, price , proDate , storageFROM Product_info CREATE PROCEDUReEpair_info_GetMaxIdASDECLARETempIDintFROM Repair_info SELECTTempID= max( repairId )+ 1IF TempIDIS NULLRETURN1ELSERETURNTempIDCREATE PROCEDUReEpair_inf

37、o_ExistsrepairId intASDECLARETempIDint=repairIdSELECTTempID= count (1) FROM Repair_info WHERErepairIdIF TempID= 0RETURN0ELSERETURN1CREATE PROCEDUReEpair_info_ADDrepairId int output ,repairName nchar ( 10),repairtel nchar (10),product varchar (50),customer varchar (20),date smalldatetime , customerte

38、l nchar ( 10)ASINSERT INTO Repair_info ( repairName , repairtel , product , customer , date , customertel ) VALUE(SrepairName, repairtel , product, custome,r date, customertel)SET repairId = IDENTITYCREATE PROCEDUReEpair_info_UpdaterepairId int ,repairName nchar ( 10),repairtel nchar (10),product va

39、rchar (50),customer varchar (20),date smalldatetime ,customertel nchar ( 10)ASUPDATE Repair_info SET repairName = repairName, repairtel = repairtel , product = product, customer = customer, date = date, customertel = customertelWHERErepairId =repairIdCREATE PROCEDUReEpair_info_DeleterepairId intASDE

40、LETE Repair_info WHERErepairId =repairIdCREATE PROCEDUReEpair_info_GetModelrepairId intASSELECTrepairId , repairName , repairtel , product , customer , date , customertelFROM Repair_info WHERErepairId =repairIdCREATE PROCEDUReEpair_info_GetListASSELECTrepairId , repairName , repairtel , product , cu

41、stomer , date , customertelFROM Repair_info CREATE PROCEDUSReEller_info_Exists namevarchar (50)ASDECLARETempIDintSELECTTempID= count (1) FROM Seller_info WHEREname=nameIF TempID= 0RETURN0ELSERETURN1CREATE PROCEDUSReEller_info_ADD namevarchar (50), telephone varchar (20),address varchar (50), product

42、 varchar (50),stockNumvarchar (6),stockDate smalldatetime ,stockPrice varchar (10)ASINSERT INTO Seller_info ( name, telephone , address , product , stockNum, stockDate , stockPrice ) VALUE(Snam,etelephone, address, product, stockNum, stockDate, stockPrice)CREATE PROCEDUSReEller_info_Updatenamevarchar (50),telephone varchar (20),address varchar (50), product varchar (50),stockNumvarchar (6), stockDate smalldatetime ,stockPrice varchar (10)ASUPDATE Seller

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论