数据库设计文档模板27847.doc_第1页
数据库设计文档模板27847.doc_第2页
数据库设计文档模板27847.doc_第3页
数据库设计文档模板27847.doc_第4页
数据库设计文档模板27847.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

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

2、止用户直接操作数据库的方法.236.2用户帐号密码的加密方法.236.3角色与权限 .237优化.248数据库管理与维护说明 .241 引言1.1编写目的本文档是时代集团产品跟踪平台概要设计文档的组成部分, 编写数据库设计文档的目的是: 明确数据库的表名、 字段名等数据信息, 用来指导后期的数据库脚本的开发, 本文档遵循 SQL数据库设计和开发规范 。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2术语表序号术语或缩略语说明性定义1ESIDEnterStorageId 入库编号2ProIdProductId 产品编号3PMIDProductManagerId产品管理员编号1

3、.3参考资料资料名称作者文件编号、版本资料存放地点2 数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明3 数据库的命名规则数据库名称:时代集团的英文名称time-group表名:英文(表的用途)+下划线 +英文字段名:相关属性的英文名4 逻辑设计提示:数据库设计人员根据需求文档, 创建与数据库相关的那部分实体关系图(ERD )。如果采用面向对象方法( OOAD ),这里实体相当于类( class)。合作伙伴partner_sett_rels运营商coop_rels合同: 1inhr_partner_sp合同模板inhr_partner_cppartner_set

4、t_ordercoop_settl_order服务提供商内容提供商结算帐单sp_coop_relscp_coop_relssettle_order_rels结算规则合同: 25 物理设计提示:( 1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。 逻辑设计中的实体大部分可以转换成物理设计中的表, 但是它们并不一定是一一对应的。(2)对表结构进行规范化处理(第三范式) 。5.1表汇总表名功能说明Enter_storage产品入库(新产品的登记、修改、查询)Exit_storage产品出库(登记产品出库信息)Seller_info销售商信息维护表(对销

5、售商信息的添加、修改和查询)Product_info产品信息表(对新产品的发布,修改,查询等维护)Repair_info维修表(对已出售产品的维修进行登记,修改)L管理员表(包含五种身份,销售人员,库存管理人员,售后服务人员,产品信息管理人员,系统管理员)5.2表:表的索引 :索引是否建立要根据具体的业务需求来确定。允许为空:不填的表示为“ 是 ”。唯一:不填的表示为“是” 。表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时间如果量大可以按每天 , 如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考 , 当字段值唯一时可以不考虑 , 当字段值

6、不唯一时 , 估算一个区别度 , 近似即可。例如:如果一个表的 NAME字段有共 2000 个值 , 其中有 1999 个不同值 ,1999/2000=0.99 越接近 1 区别度越高 , 反之区别度越低。表的并发:根据具体的业务需求预测表的并发。1表名Enter_storage数据库用户库存管理人员主键ESID 入库产品编号其他排序字段Product , date , num,storageManagerId索引字段序号字段名称数据类型(精度允许为唯一区别默认约束条件 / 说明范围)空 Y/NY/N度值1ESIDintNY2ProductVarchar(50)NN3dateSmallDate

7、TimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYMysql脚本CREATE TABLE dbo.Enter_storage(ESID int IDENTITY(1,1) NOT NULL,product varchar(50) NOT NULL,date smalldatetime NOT NULL,num varchar(6) NOT NULL,storageManagerId nvarchar(50) NOT NULL,CONSTRAINT PK_addStorage PRIMARY KEY CLUSTERED(ESID ASC)W

8、ITH(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数据库用户库存管理人员主键ExitStorageId出库产品编号其他排序字段Product , date , num,storageManagerId索引字段序号字段名称数据类型(精度允许为唯一区别默认约束条件 / 说明范围

9、)空 Y/NY/N度值1ExitStorageIdintNY2ProductVarchar(50)NN3dateSmallDateTimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYMysql 脚本记录数增长量表的并发补充说明CREATE TABLE dbo.Exit_storage( ExitStorageId int IDENTITY(1,1) NOT NULL, product varchar(50) NOT NULL,date smalldatetime NOT NULL,num varchar(6) NOT NULL,CONSTR

10、AINT PK_subStorage PRIMARY KEY CLUSTERED(ExitStorageId 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/* Object: Table dbo.Enter_storageScriptDate: 01/17/2011 16:00:59 */SET AN

11、SI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO3.表名Seller_info数据库用户销售商管理员主键name其他排序字段telephone , address , product,stockNum,stockDate , stockPrice索引字段序号字段名称数据类型(精度允许为唯一区别度默认值约束条件 / 说明范围)空 Y/NY/N1nameVarchar(50)NY2telephoneVarchar(50)NN3addressSmallDateTimeNN4productVarchar(50)NN5stockNu

12、mVarchar(50)NN6stockDateSmallDateTimeNN7stockPriceVarchar(50)NNMysql 脚本记录数增长量表的并发补充说明CREATE 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(6) NOT NULL,stockDate smalldatetime NOT NULL,stockPric

13、e varchar(10) NOT NULL,CONSTRAINT PK_maketer_Info PRIMARY KEY CLUSTERED (name ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY= OFF, ALLOW_ROW_LOCKSON,= ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO/* Object: Table dbo.Repair_infoScript Date:12/16/2010 0

14、9:59:13 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO4.表名Product_info数据库用户产品信息管理人员主键proId其他排序字段name,price, proDate,storage索引字段序号字段名称数据类型(精度允许为唯一区别默认约束条件 / 说明范围)空 Y/NY/N度值1proIdintNY2nameVarchar(50)NN3priceVarchar(50)NN4proDateSmallDateTime NN5storageVarchar(50)NYMysql 脚本CREATE

15、 TABLE dbo.Product_info(proId int IDENTITY(1,1) NOT NULL,name varchar(50) NOT NULL,price varchar(6) NOT NULL,proDate smalldatetime NOT NULL,storage varchar(4) NOT NULL,CONSTRAINT PK_product_Info PRIMARY KEY CLUSTERED (proId ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE OFF,= IGNORE_DUP_KEY = OFF

16、, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO/* Object: Table dbo.LoginScript Date:01/17/2011 16:00:59 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO记录数增长量表的并发补充说明5.表名Repair_info数据库用户售后服务人员主键repairId 产品维修编号其他排序字段repairName , repai

17、rtel, product, customer , date , customertel索引字段序号字段名称数据类型(精度允许为唯一区别度默认值约束条件 / 说明范围)空 Y/NY/N1repairIdintNY2repairNameVarchar(50)NN3repairtelSmallDateTimeNN4productVarchar(50)NN5customerVarchar(50)NNdateSmallDateTimeNNcustomertelVarchar(50)NNMysql 脚本CREATE TABLE dbo.Repair_info(repairId int IDENTITY(

18、1,1) NOT NULL,repairName nchar(10) NULL,repairtel nchar(10) NULL,product varchar(50) NOT NULL,customer varchar(20) NOT NULL,date smalldatetime NOT NULL,customertel nchar(10) NULL,CONSTRAINT PK_Table_1 PRIMARY KEY CLUSTERED(repairId ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_K

19、EY=OFF, ALLOW_ROW_LOCKSON,= ALLOW_PAGE_LOCKS= ON) ON PRIMARY ) ON PRIMARYGOSET ANSI_PADDING OFFGO/* Object: Table dbo.Product_infoScript Date:01/17/2011 16:00:59 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGO记录数增长量表的并发补充说明6.表名Login数据库用户管理人员主键userId 用户编号其他排序字段password ,userName,

20、 tel,birthday , registerTime,type索引字段序号字段名称数据类型(精度允许为唯一区别度默认值约束条件 / 说明范围)空 Y/NY/N1userIdintNY2passwordVarchar(50)NN3userNameSmallDateTimeNN4telVarchar(50)NN567birthdayVarchar(50)NNregisterTimeSmallDateTimeNNtypeVarchar(50)NNCREATE TABLE dbo.Login(Mysql 脚本userId varchar(10) NOT NULL,password varchar(

21、16) NOT NULL,userName varchar(20) NOT NULL,tel varchar(20) NOT NULL,birthday smalldatetime NOT NULL,registerTime smalldatetime NOT NULL,type nvarchar(50) NOT NULL,CONSTRAINT PK_manager_Info PRIMARY KEY CLUSTERED(userId ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL

22、LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO记录数增长量表的并发补充说明5.3视图的设计 根据 XXX产品的概要设计文档来确定。视图的命名按照 xx 数据库设计规范中关于视图的命名规范命名。视图的设计应注意以下几点 :1 尽量减少列中使用的公式。2 去掉所有不必要的列。3 不要使同一个文档属于多个分类。4 避免使用表单公式。 5.4存储过程、函数及触发器的设计 存储过程及触发器的命名按照 xx 数据库设计规范中关于存储过程及触发器的命名规范命名。存储过程:根据具

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

24、执行。 1. 存储过程:CREATE PROCEDUREEnter_storage_GetMaxIdASDECLARETempIDintSELECTTempID=max ( ESID )+1FROM Enter_storageIFTempIDISNULLRETURN 1ELSERETURN TempIDCREATE PROCEDUREEnter_storage_ExistsESIDintASDECLARETempIDintSELECTTempID=count( 1)FROM Enter_storageWHERE ESID = ESIDIFTempID=0RETURN 0ELSERETURN 1

25、CREATE PROCEDUREEnter_storage_ADDESID int output product varchar date smalldatetime,(50),num varchar( 6 ),storageManagerIdnvarchar( 50)ASINSERT INTO Enter_storage( product,date,num,storageManagerId) VALUES (product, date , num, storageManagerId)SETESID=IDENTITYCREATE PROCEDUREEnter_storage_UpdateESI

26、Dint,product varchar date smalldatetime(50),num varchar( 6 ),storageManagerIdnvarchar( 50)ASUPDATE Enter_storage product = product,SET date = date ,num = num,storageManagerId= storageManagerIdWHERE ESID = ESIDCREATE PROCEDUREEnter_storage_DeleteESIDintASDELETE Enter_storage WHERE ESID = ESIDCREATE P

27、ROCEDUREEnter_storage_GetModelESIDintASSELECTESID , product, date, num, storageManagerIdFROM Enter_storageWHERE ESID = ESIDCREATE PROCEDUREEnter_storage_GetListASSELECTESID , product, dateFROM Enter_storage, num, storageManagerIdCREATE PROCEDURE ASExit_storage_GetMaxIdDECLARETempIDintSELECTTempID=ma

28、x (IFTempIDISNULLRETURN 1ELSEExitStorageId)+1FROM Exit_storageRETURN TempIDCREATE PROCEDURE ExitStorageId int ASExit_storage_ExistsDECLARETempIDintSELECTTempID=countExitStorageId= ExitStorageIdIFTempID=0RETURN 0ELSERETURN 1( 1)FROM Exit_storageWHERECREATE PROCEDUREExit_storage_ADDExitStorageIdintout

29、put,productvarchar( 50 ),datesmalldatetime,num varchar( 6 ),storageManagerIdnvarchar( 50 )ASINSERT INTO Exit_storage( product,date,num,storageManagerId) VALUES (product, date , num, storageManagerId)SETExitStorageId=IDENTITYCREATE PROCEDURE ExitStorageId intExit_storage_Update,product varchar date s

30、malldatetime(50),num varchar( 6 ),storageManagerIdnvarchar( 50)ASUPDATE Exit_storageSET product= product,date= date ,num = num,storageManagerId=storageManagerIdWHERE ExitStorageId= ExitStorageIdCREATE PROCEDUREExit_storage_DeleteExitStorageIdintASDELETE Exit_storage WHERE ExitStorageId= ExitStorageI

31、dCREATE PROCEDUREExit_storage_GetModelExitStorageIdintASSELECTExitStorageId, product, date, num, storageManagerIdFROM Exit_storageWHERE ExitStorageId= ExitStorageIdCREATE PROCEDUREASExit_storage_GetListSELECTExitStorageId, product, date, num, storageManagerIdFROM Exit_storageCREATE PROCEDURELogin_Ex

32、istsuserIdvarchar( 10 )ASDECLARETempIDintSELECTTempID=count( 1)FROM LoginWHERE userId= userIdIFTempID=0RETURN 0ELSERETURN 1CREATE PROCEDURELogin_ADDuserIdvarchar( 10 ),passwordvarchar( 16 ),userNamevarchar( 20 ),telvarchar( 20 ),birthdaysmalldatetime,registerTimesmalldatetime,typenvarchar( 50 )ASINS

33、ERT INTO Login( userId,password,userName,tel,birthday,registerTime,type ) VALUES (userId, password, userName , tel , birthday, registerTime, type)CREATE PROCEDURELogin_UpdateuserIdvarchar( 10 ),passwordvarchar( 16 ),userNamevarchar( 20 ),telvarchar( 20 ),birthdaysmalldatetime,registerTimesmalldateti

34、me,typenvarchar( 50 )ASUPDATE LoginSET password = password,userName = userName ,tel = tel ,birthday=birthday,registerTime =registerTime,type =typeWHERE userId= userIdCREATE PROCEDURELogin_DeleteuserIdvarchar( 10 )ASDELETE LoginWHERE userId= userIdCREATE PROCEDURELogin_GetModeluserIdvarchar( 10)ASSEL

温馨提示

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

评论

0/150

提交评论