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

下载本文档

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

文档简介

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

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

3、库实例数据库系统数据库部署环境数据库设计工具数据库存放ag说明3数据库的命名规则数据库名称:时代集团的英文名称time-group表名:英文(表的用途)+下划线+英文字段名:相关属性的英文名4逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD。如果采用面向对象方法(OOAR这里实体相当于类(class)。产品管理员产品信息合作伙伴5物理设计提示:(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。(2)对表结构进行规范化处理(第三范式)。

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

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

6、默认值约束条件/说明1ESIDintNY2ProductVarchar(50)NN3dateSmallDateTimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYMysql脚本CREATETABLEdbo.Enter_storage(ESIDintIDENTITY(1,1)NOTNULL,productvarchar(50)NOTNULL,datesmalldatetimeNOTNULL,numvarchar(6)NOTNULL,storageManagerIdnvarchar(50)NOTNULL,CONSTRAINTPK_addStor

7、agePRIMARYKEYCLUSTERED(ESIDASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOON)ONPRIMARY)ONPRIMARYGOSETANSI_PADDINGOFFGO记录数增长量表的并发补充说明2.表名Exit_storage数据库用户库存管理人员主键ExitStorageId出库产品编号其他排序字段Product,date,num,storageManagerId索引字段序号字段名称数据类型(精度范围)允许为空Y/N

8、唯一Y/N区别度默认值约束条件/说明1ExitStorageIdintNY2ProductVarchar(50)NN3dateSmallDateTimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYMysql脚本CREATETABLEdbo.Exit_storage(ExitStorageIdintIDENTITY(1,1)NOTNULL,productvarchar(50)NOTNULL,datesmalldatetimeNOTNULL,numvarchar(6)NOTNULL,CONSTRAINTPK_subStoragePRIMARYK

9、EYCLUSTERED(ExitStorageIdASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFFIGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ONPRIMARY)ONPRIMARYGOSETANSI_PADDINGOFFGO/*Object:Tabledbo.Enter_storageScriptDate:01/17/201116:00:59*/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长

10、量表的并发补充说明3.表名Seller_info数据库用户销售商管理员主键name其他排序字段telephone,address,product,stockNum,stockDate,stockPrice索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1nameVarchar(50)NY2telephoneVarchar(50)NN3addressSmallDateTimeNN4productVarchar(50)NN5stockNumVarchar(50)NN6stockDateSmallDateTimeNN7stockPriceVarchar(50

11、)NNMysql脚本CREATETABLEdbo.Seller_info(namevarchar(50)NOTNULL,telephonevarchar(20)NOTNULL,addressvarchar(50)NOTNULL,productvarchar(50)NOTNULL,stockNumvarchar(6)NOTNULL,stockDatesmalldatetimeNOTNULL,stockPricevarchar(10)NOTNULL,CONSTRAINTPK_maketer_InfoPRIMARYKEYCLUSTERED(nameASC)WITH(PAD_INDEX=OFF,STA

12、TISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEYOFF,ALLOW_ROW_LOCKSON,ALLOW_PAGE_LOC=ON)ONPRIMARY)ONPRIMARYGOSETANSI_PADDINGOFFGO/*Object:Tabledbo.Repair_infoScriptDate:12/16/201009:59:13*/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明4.表名Product_info数据库用户产品信息管理人员主键proId其他排序字段name,

13、price,proDate,storage索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1proIdintNY2nameVarchar(50)NN3priceVarchar(50)NN4proDateSmallDateTimeNN5storageVarchar(50)NYMysql脚本CREATETABLEdbo.ProductJnfo(proIdintIDENTITY。/)NOTNULL,namevarchar(50)NOTNULL,pricevarchar(6)NOTNULL,proDatesmalldatetimeNOTNULL,storage

14、varchar(4)NOTNULL,CONSTRAINTPK_product_InfoPRIMARYKEYCLUSTERED(proIdASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTEOFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ONPRIMARY)ONPRIMARYGOSETANSI_PADDINGOFFGO/*Object:Tabledbo.LoginScriptDate:01/17/201116:00:59*/SETANSI_NULLSONGOSETQUOTED_IDE

15、NTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明5.表名Repair_info数据库用户售后服务人员主键repairId广品维修编号其他排序字段repairName,repairtel,product,customer,date,customertel索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1repairIdintNY2repairNameVarchar(50)NN3repairtelSmallDateTimeNN4productVarchar(50)NN5customerVarchar(50)NNdat

16、eSmallDateTimeNNcustomertelVarchar(50)NNMysql脚本CREATETABLEdbo.Repair_info(repairIdintIDENTITY。/)NOTNULL,repairNamenchar(10)NULL,repairtelnchar(10)NULL,productvarchar(50)NOTNULL,customervarchar(20)NOTNULL,datesmalldatetimeNOTNULL,customertelnchar(10)NULL,CONSTRAINTPK_Table_1PRIMARYKEYCLUSTERED(repair

17、IdASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEYOFF,ALLOW_ROW_LOCKSON,ALLOW_PAGE_LOC=ON)ONPRIMARY)ONPRIMARYGOSETANSI_PADDINGOFFGO/*Object:Tabledbo.Product_infoScriptDate:01/17/201116:00:59*/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGO记录数增长量表的并发补充说明6.表名Login数据库用户管理人员

18、主键userId用户编号其他排序字段password,userName,tel,birthday,registerTime,type索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1userIdintNY2passwordVarchar(50)NN3userNameSmallDateTimeNN4telVarchar(50)NN5birthdayVarchar(50)NN6registerTimeSmallDateTimeNN7typeVarchar(50)NNMysql脚本CREATETABLEdbo.Login(userIdvarchar(10)N

19、OTNULL,passwordvarchar(16)NOTNULL,userNamevarchar(20)NOTNULL,telvarchar(20)NOTNULL,birthdaysmalldatetimeNOTNULL,registerTimesmalldatetimeNOTNULL,typenvarchar(50)NOTNULL,CONSTRAINTPK_manager_InfoPRIMARYKEYCLUSTERED(userIdASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_L

20、OCKS=ON,ALLOW_PAGE_LOCKSONPRIMARY)ONPRIMARYGOSETANSI_PADDINGOFFGO记录数增长量表的并发补充说明ON)5.3视图的设计根据XXX产品的概要设计文档来确定。视图的命名按照xx数据库设计规范中关于视图的命名规范命名视图的设计应注意以下几点:1尽量减少列中使用的公式。2去掉所有不必要的列。3不要使同一个文档属于多个分类。4避免使用表单公式。NameO'rerTypeC>M:&d_dateLrrft1viaw.ftrtft-Stortgeidbs业20111171:GB:37.34C%iiiii,iui«aa

21、iii,IeICdunmjiameTypeQxroutedLengthFreeNulaofeTfhtTrailngBlanksF-xedLe-WInSou跣Co£ion1ESIDirtrw410noNULL2praduSvansharftOMnononoCKness_FRC_CLAS3d?tenoAno同司,旬NULL4numvarWarno5nongChneSe_PR;_Cl>S5storageMaragerdnvair+iarno100AD於研Omese_PRC_Cl_.Sldern>,S6edIncnememNotForReptcacjon1:Nddmttjrcal

22、uffincefined.NULLNULLNULLRg,GudCS1jNdnowguidcQlcDlumndefned.e5.4存储过程、函数及触发器的设计存储过程及触发器的命名按照xx数据库设计规范中关于存储过程及触发器的命名规范命名。存储过程:根据具体得业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其他提供功能的过程。例如:不要定义强制数据完整性的过程(使用完整性约束)。函数:函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQ僚令中使用函数。就好像建立自己的substr函数一样触发器:触发器是存储在

23、数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert,update或delete语句时执行。1 .存储过程:CREATEPROCEDUREnter_storage_GetMaxIdASDECLARETempIDintSELECTTempID=max(ESID)+1FROMEnter_storageIFTempIDISNULLRETURN1ELSERETURNTempIDCREATEPROCEDUREnter_storage_ExistsESIDintASD

24、ECLARETempIDintSELECTTempID=count(1)FROMEnter_storageWHEREESID=ESIDIFTempID=0RETURN0ELSERETURN1CREATEPROCEDUREEnter_storage_ADDESIDintoutput,productvarchar(50),datesmalldatetime,numvarchar(6),storageManagerIdnvarchar(50)ASINSERTINTOEnter_storage(product,date,num,storageManagerId)VALUES(product,date,

25、num,storageManagerId)SETESID=IDENTITYCREATEPROCEDUREEnter_storage_UpdateESIDint,productvarchar(50),datesmalldatetime,numvarchar(6),storageManagerIdnvarchar(50)ASUPDATEEnter_storageSETproduct=product,date=date,num=num,storageManagerId=storageManagerIdWHEREESID=ESIDCREATEPROCEDUREEnter_storage_DeleteE

26、SIDintASDELETEEnter_storageWHEREESID=ESIDCREATEPROCEDUREEnter_storage_GetModelESIDintASSELECTESID,product,date,num,storageManagerIdFROMEnter_storageWHEREESID=ESIDCREATEPROCEDUREEnter_storage_GetListASSELECTESID,product,date,num,storageManagerIdFROMEnter_storageCREATEPROCEDUREExit_storage_GetMaxIdASD

27、ECLARETempIDintSELECTTempID=max(ExitStorageId)+1FROMExit_storageIFTempIDISNULLRETURN1ELSERETURNTempIDCREATEPROCEDUREExit_storage_ExistsExitStorageIdintASDECLARETempIDintSELECTTempID=count(1)FROMExit_storageWHEREExitStorageId=ExitStorageIdIFTempID=0RETURN0ELSERETURN1CREATEPROCEDUREExit_storage_ADDExi

28、tStorageIdintoutput,productvarchar(50),datesmalldatetime,numvarchar(6),storageManagerIdnvarchar(50)ASINSERTINTOExit_storage(product,date,num,storageManagerId)VALUES(product,date,num,storageManagerId)SETExitStorageId=IDENTITYCREATEPROCEDUREExit_storage_UpdateExitStorageIdint,productvarchar(50),datesm

29、alldatetime,numvarchar(6),storageManagerIdnvarchar(50)ASUPDATEExit_storageSETproduct=product,date=date,num=num,storageManagerId=storageManagerIdWHEREExitStorageId=ExitStorageIdCREATEPROCEDUREExit_storage_DeleteExitStorageIdintASDELETEExit_storageWHEREExitStorageId=ExitStorageIdCREATEPROCEDUREExit_st

30、orage_GetModelExitStorageIdintASSELECTExitStorageId,product,date,num,storageManagerIdFROMExit_storageWHEREExitStorageId=ExitStorageIdCREATEPROCEDUREExit_storage_GetListASSELECTExitStorageId,product,date,num,storageManagerIdFROMExit_storageCREATEPROCEDURLEogin_ExistsuserIdvarchar(10)ASDECLARETempIDin

31、tSELECTTempID=count(1)FROMLoginWHEREuserId=userIdIFTempID=0RETURN0ELSERETURN1CREATEPROCEDURLEogin_ADDuserIdvarchar(10),passwordvarchar(16),userNamevarchar(20),telvarchar(20),birthdaysmalldatetime,registerTimesmalldatetimetypenvarchar(50)ASINSERTINTOLogin(userId,password,userName,tel,birthday,registe

32、rTime,type)VALUES(userId,password,userName,tel,birthday,registerTime,type)CREATEPROCEDURLEogin_UpdateuserIdvarchar(10),passwordvarchar(16),userNamevarchar(20),telvarchar(20),birthdaysmalldatetime,registerTimesmalldatetime,typenvarchar(50)ASUPDATELoginSETpassword=password,userName=userName,tel=tel,bi

33、rthday=birthday,registerTime=registerTime,type=typeWHEREuserId=userIdCREATEPROCEDURLEogin_DeleteuserIdvarchar(10)ASDELETELoginWHEREuserId=userIdCREATEPROCEDURLEogin_GetModeluserIdvarchar(10)ASSELECTuserId,password,userName,tel,birthday,registerTime,typeFROMLoginWHEREuserId=userIdCREATEPROCEDURLEogin

34、_GetListASSELECTuserId,password,userName,tel,birthday,registerTime,typeFROMLoginCREATEPROCEDURPEroduct_info_GetMaxIdASDECLARETempIDintSELECTTempID=max(proId)+1FROMProduct_infoIFTempIDISNULLRETURN1ELSERETURNTempIDCREATEPROCEDURPEroduct_info_ExistsproIdintASDECLARETempIDintSELECTTempID=count(1)FROMPro

35、duct_infoWHEREproId=proIdIFTempID=0RETURN0ELSERETURN1CREATEPROCEDURPEroduct_info_ADDproIdintoutput,namevarchar(50),pricevarchar(6),proDatesmalldatetime,storagevarchar(4)ASINSERTINTOProduct_info(name,price,proDate,storage)VALUES(name,price,proDate,storage)SETproId=IDENTITYCREATEPROCEDURPEroduct_info_

36、UpdateproIdint,namevarchar(50),pricevarchar(6),proDatesmalldatetime,storagevarchar(4)ASUPDATEProduct_infoSETname=name,price=price,proDate=proDate,storage=storageWHEREproId=proIdCREATEPROCEDURPEroduct_info_DeleteproIdintASDELETEProduct_infoWHEREproId=proIdCREATEPROCEDURPEroduct_info_GetModelproIdintA

37、SSELECTproId,name,price,proDate,storageFROMProduct_infoWHEREproId=proIdCREATEPROCEDURPEroduct_info_GetListASSELECTproId,name,price,proDate,storageFROMProduct_infoCREATEPROCEDURREepair_info_GetMaxIdASDECLARETempIDintSELECTTempID=max(repairId)+1FROMRepair_infoIFTempIDISNULLRETURN1ELSERETURNTempIDCREAT

38、EPROCEDURREepair_info_ExistsrepairIdintASDECLARETempIDintSELECTTempID=count(1)FROMRepair_infoWHERErepairId=repairIdIFTempID=0RETURN0ELSERETURN1CREATEPROCEDURREepair_info_ADDrepairIdintoutput,repairNamenchar(10),repairtelnchar(10),productvarchar(50),customervarchar(20),datesmalldatetime,customertelnc

39、har(10)ASINSERTINTORepair_info(repairName,repairtel,product,customer,date,customertel)VALUES(repairName,repairtel,product,customer,date,customertel)SETrepairId=IDENTITY1。18CREATEPROCEDURREepair_info_UpdaterepairIdint,repairNamenchar(10),repairtelnchar(10),productvarchar(50),customervarchar(20),dates

40、malldatetime,customertelnchar(10)ASUPDATERepair_infoSETrepairName=repairName,repairtel=repairtel,product=product,customer=customer,date=date,customertel=customertelWHERErepairId=repairIdCREATEPROCEDURREepair_info_DeleterepairIdintASDELETERepair_infoWHERErepairId=repairIdCREATEPROCEDURREepair_info_Ge

41、tModelrepairIdintASSELECTrepairId,repairName,repairtel,product,customer,date,customertelFROMRepair_infoWHERErepairId=repairIdCREATEPROCEDURREepair_info_GetListASSELECTrepairId,repairName,repairtel,product,customer,date,customertelFROMRepair_infoCREATEPROCEDURSEeller_info_Existsnamevarchar(50)ASDECLA

42、RETempIDintSELECTTempID=count(1)FROMSeller_infoWHEREname=nameIFTempID=0RETURN0ELSERETURN1CREATEPROCEDURSEeller_info_ADDnamevarchar(50),telephonevarchar(20),addressvarchar(50),productvarchar(50),stockNumvarchar(6),stockDatesmalldatetime,stockPricevarchar(10)ASINSERTINTOSeller_info(name,telephone,address,product,stockNum,stockDate,stockPrice)VALUES(name,telephone,address,product,stockNum,stockDate,stockPrice)CREATEPROCEDURSEeller_info_Updatenamevarchar(50),telephonevarchar(20),addressvarchar(50),productvarchar(50),stockNumvarchar(6),stockDatesmalldatetim

温馨提示

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

评论

0/150

提交评论