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

下载本文档

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

文档简介

Word资料Word资料Word资料**********中心开发部文档编号2011-6-14版本A1密级商密A项目名称时代集团产品跟踪平台项目来源时代集团DR-RD-020(V1.1)数据库设计说明书(内部资料请勿外传) 编写: 日期: 检查: 日期: 审核: 日期: 批准: 日期:*********版权所有不得复制时代集团产品跟踪平台错误!未定义书签。数据库设计说明书1引言2编写目的2术语表2参考资料3数据库环境说明3数据库的命名规则3逻辑设计3物理设计4表汇总5表[X]:[XXX表]5视图的设计存储过程、函数及触发器的设计安全性设计防止用户直接操作数据库的方法用户帐号密码的加密方法角色与权限优化数据库管理与维护说明1引言1.1编写目的本文档是时代集团产品跟踪平台概要设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《SQL数据库设计和开发规范》。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2术语表序序号术语或缩略语说明性定义1ESIDEnterStorageId入库编号2ProIdProductId产品编号33PMIDProductManagerId产品管理员编号1.3参考资料资料名称资料名称作者文件编号、版本资料存放地点2数据库环境说明数据库数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明3数据库的命名规则数据库名称:时代集团的英文名称time-group表名:英文(表的用途)+下划线+英文字段名:相关属性的英文名4逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类(class)。inhr_partner_spinhr_partner_cppartner_sett_relscoop_relssettle_order_relspartner_sett_ordercoop_settl_ordersp_coop_relscp_coop_rels合作伙伴服务提供商内容提供商合同:1结算帐单运营商结算规则合同模板合同:25物理设计提示:(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。(2)对表结构进行规范化处理(第三范式)。5.1表汇总表名表名功能说明Enter_storage产品入库(新产品的登记、修改、查询)Exit_storage产品出库(登记产品出库信息)Seller_info销售商信息维护表(对销售商信息的添加、修改和查询)Product_info产品信息表(对新产品的发布,修改,查询等维护)Repair_info维修表(对已出售产品的维修进行登记,修改)L管理员表(包含五种身份,销售人员,库存管理人员,售后服务人员,产品信息管理人员,系统管理员)5.2表:表的索引:索引是否建立要根据具体的业务需求来确定。允许为空:不填的表示为“是”。唯一:不填的表示为“是”。表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时间如果量大可以按每天,如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考,当字段值唯一时可以不考虑,当字段值不唯一时,估算一个区别度,近似即可。例如:如果一个表的NAME字段有共2000个值,其中有1999个不同值,1999/2000=0.99越接近1区别度越高,反之区别度越低。表的并发:根据具体的业务需求预测表的并发。1.表名表名Enter_storage数据库用户库存管理人员主键ESID入库产品编号其他排序字段Product,date,num,storageManagerId索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1ESIDintNY2ProductVarchar(50)NN3dateSmallDateTimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYWord资料Word资料Word资料Mysql脚本Mysql脚本CREATETABLE[dbo].[Enter_storage]([ESID][int]IDENTITY(1,1)NOTNULL,[product][varchar](50)NOTNULL,[date][smalldatetime]NOTNULL,[num][varchar](6)NOTNULL,[storageManagerId][nvarchar](50)NOTNULL,CONSTRAINT[PK_addStorage]PRIMARYKEYCLUSTERED([ESID]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO记录数增长量表的并发补充说明2.表名表名Exit_storage数据库用户库存管理人员主键ExitStorageId出库产品编号其他排序字段Product,date,num,storageManagerId索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1ExitStorageIdintNY2ProductVarchar(50)NN3dateSmallDateTimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYMysqlMysql脚本CREATETABLE[dbo].[Exit_storage]([ExitStorageId][int]IDENTITY(1,1)NOTNULL,[product][varchar](50)NOTNULL,[date][smalldatetime]NOTNULL,[num][varchar](6)NOTNULL,CONSTRAINT[PK_subStorage]PRIMARYKEYCLUSTERED([ExitStorageId]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO/******Object:Table[dbo].[Enter_storage]ScriptDate:01/17/201116:00:59******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明3.表名表名Seller_info数据库用户销售商管理员主键name其他排序字段telephone,address,product,stockNum,stockDate,stockPrice索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1nameVarchar(50)NY2telephoneVarchar(50)NN3addressSmallDateTimeNN4productVarchar(50)NN5stockNumVarchar(50)NN6stockDateSmallDateTimeNN7stockPriceVarchar(50)NNMysqlMysql脚本CREATETABLE[dbo].[Seller_info]([name][varchar](50)NOTNULL,telephone][varchar](20)NOTNULL,[[address][varchar](50)NOTNULL,product][varchar](50)NOTNULL,[[stockNum][varchar](6)NOTNULL,stockDate][smalldatetime]NOTNULL,[[stockPrice][varchar](10)NOTNULL,CONSTRAINT[PK_maketer_Info]PRIMARYKEYCLUSTERED([name]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO/******Object:Table[dbo].[Repair_info]ScriptDate:12/16/201009:59:13******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明4.表名表名Product_info数据库用户产品信息管理人员主键proId其他排序字段name,price,proDate,storage索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1proIdintNY2nameVarchar(50)NN3priceVarchar(50)NN4proDateSmallDateTimeNN55storageVarchar(50)NYMysql脚本CREATETABLE[dbo].[Product_info]([proId][int]IDENTITY(1,1)NOTNULL,[name][varchar](50)NOTNULL,[price][varchar](6)NOTNULL,[proDate][smalldatetime]NOTNULL,[storage][varchar](4)NOTNULL,CONSTRAINT[PK_product_Info]PRIMARYKEYCLUSTERED([proId]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO/******Object:Table[dbo].[Login]ScriptDate:01/17/201116:00:59******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明5.表名表名Repair_info数据库用户售后服务人员主键repairId产品维修编号其他排序字段repairName,repairtel,product,customer,date,customertel索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1repairIdintNY2repairNameVarchar(50)NN3repairtelSmallDateTimeNN4productVarchar(50)NN5customerVarchar(50)NNdateSmallDateTimeNNcustomertelVarchar(50)NNMysql脚本CREATETABLE[dbo].[Repair_info]([repairId][int]IDENTITY(1,1)NOTNULL,[repairName][nchar](10)NULL,[repairtel][nchar](10)NULL,[product][varchar](50)NOTNULL,[customer][varchar](20)NOTNULL,date][smalldatetime]NOTNULL,[[customertel][nchar](10)NULL,CONSTRAINT[PK_Table_1]PRIMARYKEYCLUSTERED([repairId]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO/******Object:Table[dbo].[Product_info]ScriptDate:01/17/201116:00:59******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明6.表名表名Login数据库用户管理人员主键userId用户编号其他排序字段password,userName,tel,birthday,registerTime,type索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1userIdintNY2passwordVarchar(50)NN3userNameSmallDateTimeNN4telVarchar(50)NN55birthdayVarchar(50)NN6registerTimeSmallDateTimeNN7typeVarchar(50)NNMysql脚本CREATETABLE[dbo].[Login]([userId][varchar](10)NOTNULL,[password][varchar](16)NOTNULL,userName][varchar](20)NOTNULL,[[tel][varchar](20)NOTNULL,[birthday][smalldatetime]NOTNULL,registerTime][smalldatetime]NOTNULL,[[type][nvarchar](50)NOTNULL,CONSTRAINT[PK_manager_Info]PRIMARYKEYCLUSTERED([userId]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO记录数增长量表的并发补充说明5.3视图的设计[根据XXX产品的概要设计文档来确定。视图的命名按照《xx数据库设计规范》中关于视图的命名规范命名。视图的设计应注意以下几点:尽量减少列中使用的公式。去掉所有不必要的列。不要使同一个文档属于多个分类。避免使用表单公式。]Word资料Word资料Word资料5.4存储过程、函数及触发器的设计[存储过程及触发器的命名按照《xx数据库设计规范》中关于存储过程及触发器的命名规范命名。存储过程:根据具体得业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其他提供功能的过程。例如:不要定义强制数据完整性的过程(使用完整性约束)。函数:函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQL命令中使用函数。就好像建立自己的substr函数一样触发器:触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert,update或delete语句时执行。]1.存储过程:CREATEPROCEDUREEnter_storage_GetMaxIdASDECLARE@TempIDintSELECT@TempID=max([ESID])+1FROM[Enter_storage]IF@TempIDISNULLRETURN1ELSERETURN@TempIDCREATEPROCEDUREEnter_storage_Exists@ESIDintASDECLARE@TempIDintSELECT@TempID=count(1)FROM[Enter_storage]WHEREESID=@ESIDIF@TempID=0RETURN0 ELSE RETURN1CREATEPROCEDUREEnter_storage_ADD@ESIDintoutput,@productvarchar(50),@datesmalldatetime,@numvarchar(6),@storageManagerIdnvarchar(50)AS INSERTINTO[Enter_storage]( [product],date[],num[],storageManagerId[ ] )VALUES( @product,@date,@num,@storageManagerId ) SET@ESID=@@IDENTITYCREATEPROCEDUREEnter_storage_Update@ESIDint,@productvarchar(50),@datesmalldatetime,@numvarchar(6),@storageManagerIdnvarchar(50)AS UPDATE[Enter_storage]SET [product]=@product,[date]=@date,[num]=@num,[storageManagerId]=@storageManagerId WHEREESID=@ESIDCREATEPROCEDUREEnter_storage_Delete@ESIDintAS DELETE[Enter_storage] WHEREESID=@ESIDCREATEPROCEDUREEnter_storage_GetModel@ESIDintAS SELECT ESID,product,date,num,storageManagerId FROM[Enter_storage] WHEREESID=@ESIDCREATEPROCEDUREEnter_storage_GetListAS SELECT ESID,product,date,num,storageManagerId FROM[Enter_storage]CREATEPROCEDUREExit_storage_GetMaxIdAS DECLARE@TempIDint SELECT@TempID=max([ExitStorageId])+1FROM[Exit_storage] IF@TempIDISNULL RETURN1 ELSE RETURN@TempIDCREATEPROCEDUREExit_storage_Exists@ExitStorageIdintAS DECLARE@TempIDint SELECT@TempID=count(1)FROM[Exit_storage]WHEREExitStorageId=@ExitStorageId IF@TempID=0 RETURN0 ELSE RETURN1CREATEPROCEDUREExit_storage_ADD@ExitStorageIdintoutput,@productvarchar(50),@datesmalldatetime,@numvarchar(6),@storageManagerIdnvarchar(50)AS INSERTINTO[Exit_storage]( [product],date[],num[],storageManagerId[ ] )VALUES( @product,@date,@num,@storageManagerId ) SET@ExitStorageId=@@IDENTITYCREATEPROCEDUREExit_storage_Update@ExitStorageIdint,@productvarchar(50),@datesmalldatetime,@numvarchar(6),@storageManagerIdnvarchar(50)AS UPDATE[Exit_storage]SET [product]=@product,[date]=@date,[num]=@num,[storageManagerId]=@storageManagerId WHEREExitStorageId=@ExitStorageIdCREATEPROCEDUREExit_storage_Delete@ExitStorageIdintAS DELETE[Exit_storage] WHEREExitStorageId=@ExitStorageIdCREATEPROCEDUREExit_storage_GetModel@ExitStorageIdintAS SELECT ExitStorageId,product,date,num,storageManagerId FROM[Exit_storage] WHEREExitStorageId=@ExitStorageIdCREATEPROCEDUREExit_storage_GetListAS SELECT ExitStorageId,product,date,num,storageManagerId FROM[Exit_storage]CREATEPROCEDURELogin_Exists@userIdvarchar(10)AS DECLARE@TempIDint SELECT@TempID=count(1)FROM[Login]WHEREuserId=@userId IF@TempID=0 RETURN0 ELSE RETURN1CREATEPROCEDURELogin_ADD@userIdvarchar(10),@passwordvarchar(16),@userNamevarchar(20),@telvarchar(20),@birthdaysmalldatetime,@registerTimesmalldatetime,@typenvarchar(50)AS INSERTINTO[Login]( [userId],password[ ],userName[ ],tel[],birthday[ ],registerTime[ ],type[] )VALUES( @userId,@password,@userName,@tel,@birthday,@registerTime,@type )CREATEPROCEDURELogin_Update@userIdvarchar(10),@passwordvarchar(16),@userNamevarchar(20),@telvarchar(20),@birthdaysmalldatetime,@registerTimesmalldatetime,@typenvarchar(50)AS UPDATE[Login]SET [password]=@password,[userName]=@userName,[tel]=@tel,[birthday]=@birthday,[registerTime]=@registerTime,[type]=@type WHEREuserId=@userIdCREATEPROCEDURELogin_Delete@userIdvarchar(10)AS DELETE[Login] WHEREuserId=@userIdCREATEPROCEDURELogin_GetModel@userIdvarchar(10)ASSELECTuserId,password,userName,tel,birthday,registerTime,typeFROM[Login]WHEREuserId=@userIdCREATEPROCEDURELogin_GetListAS SELECT userId,password,userName,tel,birthday,registerTime,type FROM[Login]CREATEPROCEDUREProduct_info_GetMaxIdAS DECLARE@TempIDint SELECT@TempID=max([proId])+1FROM[Product_info] IF@TempIDISNULL RETURN1 ELSE RETURN@TempIDCREATEPROCEDUREProduct_info_Exists@proIdintAS DECLARE@TempIDint SELECT@TempID=count(1)FROM[Product_info]WHEREproId=@proId IF@TempID=0 RETURN0 ELSE RETURN1CREATEPROCEDUREProduct_info_ADD@proIdintoutput,@namevarchar(50),@pricevarchar(6),@proDatesmalldatetime,@storagevarchar(4)ASINSERTINTO[Product_info]( [name],price[],proDate[ ],storage[ ] )VALUES( @name,@price,@proDate,@storage ) SET@proId=@@IDENTITYCREATEPROCEDUREProduct_info_Update@proIdint,@namevarchar(50),@pricevarchar(6),@proDatesmalldatetime,@storagevarchar(4)AS UPDATE[Product_info]SET [name]=@name,[price]=@price,[proDate]=@proDate,[storage]=@storage WHEREproId=@proIdCREATEPROCEDUREProduct_info_Delete@proIdintAS DELETE[Product_info] WHEREproId=@proIdCREATEPROCEDUREProduct_info_GetModel@proIdintAS SELECT proId,name,price,proDate,storage FROM[Product_info] WHEREproId=@proIdCREATEPROCEDUREProduct_info_GetListASSELECTproId,name,price,proDate,storageFROM[Product_info]CREATEPROCEDURERepair_info_GetMaxIdAS DECLARE@TempIDint SELECT@TempID=max([repairId])+1FROM[Repair_info] IF@TempIDISNULL RETURN1 ELSE RETURN@TempIDCREATEPROCEDURERepair_info_Exists@repairIdintAS DECLARE@TempIDint SELECT@TempID=count(1)FROM[Repair_info]WHERErepairId=@repairId IF@TempID=0 RETURN0 ELSE RETURN1CREATEPROCEDURERepair_info_ADD@repairIdintoutput,@repairNamenchar(10),@repairtelnchar(10),@productvarchar(50),@customervarchar(20),@datesmalldatetime,@customertelnchar(10)AS INSERTINTO[Repair_info]( [repairName],repairtel[ ],product[ ],customer[ ],date[],customertel[ ] )VALUES(@repairName,@repairtel,@product,@customer,@date,@customertel)SET@repairId=@@IDENTITYCREATEPROCEDURERepair_info_Update@repairIdint,@repairNamenchar(10),@repairtelnchar(10),@productvarchar(50),@customervarchar(20),@datesmalldatetime,@customertelnchar(10)AS UPDATE[Repair_info]SET [repairName]=@repairName,[repairtel]=@repairtel,[product]=@product,[customer]=@customer,[date]=@date,[customertel]=@customertel WHERErepairId=@repairIdCREATEPROCEDURERepair_info_Delete@repairIdintAS DELETE[Repair_info] WHERErepairId=@repairIdCREATEPROCEDURERepair_info_GetModel@repairIdintAS SELECT repairId,repairName,repairtel,product,customer,date,customertel FROM[Repair_info] WHERErepairId=@repairIdCREATEPROCEDURERepair_info_GetListASSELECTrepairId,repairName,repairtel,product,customer,date,customertelFROM[Repair_info]CREATEPROCEDURESeller_info_Exists@namevarchar(50)AS DECLARE@TempIDint SELECT@TempID=count(1)FROM[Seller_info]WHEREname=@name IF@TempID=0 RETURN0 ELSE RETURN1CREATEPROCEDURESeller_info_ADD@namevarchar(50),@telephonevarchar(20),@addressvarchar(50),@productvarchar(50),@stockNumvarchar(6),@stockDatesmalldatetime,@stockPricevarchar(10)AS INSERTINTO[Seller_info]( [name],telephone[ ],address[ ],product[ ],stockNum[ ],stockDate[ ],stockPrice[ ] )VALUES( @name,@telephone,@address,@product,@stockNum,@stockDate,@stockPrice )CREATEPROCEDURES

温馨提示

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

评论

0/150

提交评论