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

下载本文档

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

文档简介

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)。合作伙伴运营商tt_relscoop_relsinhr_partner_sp合同模板t_order服务提供商内容提供商结算帐单sp_cocp_coop_rels结

4、算规则5 物理设计提示:(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之 间的关系成为表的约束。 逻辑设计中的实体大部分可以转换成物理设计中的表, 但是它们并 不一定是一一对应的。( 2)对表结构进行规范化处理(第三范式) 。5.1 表汇总表名功能说明Enter storage产品入库(新产品的登记、修改、查询)Exit storage产品出库(登记产品出库信息)Seller info销售商信息维护表(对销售商信息的添加、修改和查询)Product info产品信息表(对新产品的发布,修改,查询等维护)Repair info维修表(对已出售产品的维修进行登记,修改)

5、L管理员表(包含五种身份,销售人员,库存管理人员,售后服务人员,产品信息管理人员,系统管理员)5.2 表:表的索引 : 索引是否建立要根据具体的业务需求来确定。 允许为空:不填的表示为“是”。唯一:不填的表示为“是”。 表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时间如果量大可 以按每天, 如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考 , 当字段 值唯一时可以不考虑 , 当字段值不唯一时 , 估算一个区别度 , 近似即 可。例如:如果一个表的 NAME字段有共 2000个值, 其中有 1999个 不同值,1999/2000=0.99

6、越接近 1区别度越高, 反之区别度越低。表的并发:根据具体的业务需求预测表的并发。1表名Enter storage数据库用户库存管理人员主键ESID 入库产品编号其他排序字段Product , date , num,storageManagerId索引字段序号字段名称数据类型(精度 范围)允许为 空 Y/N唯一Y/N区别 度默认 值约束条件 / 说明1ESIDintNY2ProductVarchar(50)NN3dateSmallDateTimeNN4numVarchar(50)NN5storageManagerIdVarchar(50)NYMysql 脚本CREATE TABLE dbo.E

7、nter 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)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF

8、, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LO ON) ON PRIMARY) ON PRIMARY GOSET ANSI_PADDING OFF GO记录数增长量表的并发补充说明2.表名Exit storage数据库用户库存管理人员主键ExitStorageId 出库产品编号其他排序字段Product , date , num,storageManagerId索引字段序号字段名称数据类型(精度 范围)允许为 空 Y/N唯一Y/N区别 度默认 值约束条件 / 说明1ExitStorageIdintNY2ProductVarchar(50)NN3dateSmallDa

9、teTimeNN4numVarchar(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,CONSTRAINT PK_subStorage PRIMARY KEY CLUSTERED (ExitStorageId ASC)WITH (PAD_INDEX

10、 = OFF, STATISTICS_NORECOMPUTE O =F F, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY GOSET ANSI_PADDING OFFGO/* Object: Table dbo.Enter_storage ScriptDate: 01/17/2011 16:00:59 */ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO SET ANSI_PADDING ONGO记录数增长量表的并发

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

12、har(50)NNMysql 脚本CREATE TABLE dbo.Seller info(name varchar(50) NOTNULL, telephone varchar(20) NOT NULL,addressvarchar(50) NOT NULL,product varchar(50) NOT NULL,stockNum varchar(6) NOT NULL, stockDatesmalldatetime NOT NULL, stockPrice varchar(10) NOT NULL, CONSTRAINT PK_maketer_Info PRIMARY KEY CLUST

13、ERED ( nameASC) WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMA) R ON PRIMARY GOS ET ANSI_PADDING OFFG O/ * Object: Table dbo.Repair_info Script Date: 12/16/2010 09:59:13 */ SET ANSI_NULLS ONG OS ET QUOTED_IDENTIFIER ONG

14、OS ET ANSI PADDING ONG O记录数增长量表的并发补充说明4.表名Product info数据库用户产品信息管理人员主键proId其他排序字段name,price , proDate, storage索引字段序号字段名称数据类型(精度 范围)允许为 空 Y/N唯一Y/N区别 度默认 值约束条件 / 说明1proIdintNY2nameVarchar(50)NN3priceVarchar(50)NN4proDateSmallDateTimeNN5storageVarchar(50)NYMysql 脚本CREATE TABLE dbo.Product info( proId in

15、t 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 O =F F, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, AL

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

17、er , date , customertel索引字段序号字段名称数据类型(精度 范围)允许为 空 Y/N唯一Y/N区别度默认值约束条件 / 说明1repairIdintNY2repairNameVarchar(50)NN3repairtelSmallDateTimeNN4productVarchar(50)NN5customerVarchar(50)NNdateSmallDateTimeNNcustomertelVarchar(50)NNMysql 脚本CREATE TABLE dbo.Repair info( repairId int IDENTITY(1,1) NOT NULL, rep

18、airName 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_KE=Y O FF, A

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

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

21、r(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 =

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

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

24、update 或 delete 语句时执行。 1. 存储过程:CREATE PROCEDURE Enter_storage_GetMaxIdASDECLARE TempID intSELECT TempID = max( ESID )+ 1 FROM Enter_storage IF TempID IS NULLRETURN 1ELSERETURN TempIDCREATE PROCEDURE Enter_storage_Exists ESID intASDECLARE TempID intSELECT TempID = count ( 1) FROM Enter_storage WHERE

25、ESID =ESID IF TempID = 0RETURN 0ELSERETURN 1CREATE PROCEDURE Enter_storage_ADD ESID int output ,product varchar ( 50 ),date smalldatetime ,num varchar ( 6),storageManagerId nvarchar ( 50)ASINSERT INTO Enter_storage ( product , date , num , storageManagerId ) VALUES (product , date , num, storageMana

26、gerId)SET ESID = IDENTITYCREATE PROCEDURE Enter_storage_UpdateESID int ,product varchar ( 50 ),date smalldatetime ,num varchar ( 6),storageManagerId nvarchar ( 50)ASUPDATE Enter_storage SET product = product , date = date , num = num, storageManagerId = storageManagerIdWHERE ESID =ESIDCREATE PROCEDU

27、RE Enter_storage_DeleteESID intASDELETE Enter_storage WHERE ESID =ESIDCREATE PROCEDURE Enter_storage_GetModelESID intASSELECTESID , product , date , num, storageManagerIdFROM Enter_storage WHERE ESID =ESIDCREATE PROCEDURE Enter_storage_GetListASSELECTESID , product , date , num, storageManagerIdFROM

28、 Enter_storage CREATE PROCEDURE Exit_storage_GetMaxIdASDECLARE TempID int Exit_storage WHERESELECT TempID = max( ExitStorageId )+ 1 FROM IF TempID IS NULLRETURN 1ELSERETURN TempIDCREATE PROCEDURE Exit_storage_ExistsExitStorageId intASDECLARE TempID intSELECT TempID = count ( 1) FROM Exit_storage Exi

29、tStorageId= ExitStorageIdIF TempID = 0RETURN 0ELSERETURN 1CREATE PROCEDURE Exit_storage_ADD ExitStorageId int output , product varchar ( 50 ), date smalldatetime , num varchar ( 6),storageManagerId nvarchar ( 50)ASINSERT INTO Exit_storage ( product , date , num , storageManagerId ) VALUES (product ,

30、 date , num, storageManagerId)SET ExitStorageId = IDENTITYCREATE PROCEDURE Exit_storage_Update ExitStorageId int ,product varchar ( 50 ),date smalldatetime ,num varchar ( 6),storageManagerId nvarchar ( 50) ASUPDATE Exit_storage product = product,SETdate = date , num = num, storageManagerId= storageM

31、anagerIdWHERE ExitStorageId= ExitStorageIdCREATE PROCEDURE Exit_storage_DeleteExitStorageId intASDELETE Exit_storageWHERE ExitStorageId= ExitStorageIdCREATE PROCEDURE Exit_storage_GetModelExitStorageId intASSELECTExitStorageId , product , date , num, storageManagerIdFROM Exit_storage WHERE ExitStora

32、geId = ExitStorageIdCREATE PROCEDURE Exit_storage_GetListASSELECTExitStorageId , product , date , num, storageManagerId FROM Exit_storage CREATE PROCEDURE Login_ExistsuserId varchar ( 10)ASDECLARE TempID intSELECT TempID = count ( 1) FROM Login WHERE userId = userId IF TempID = 0RETURN 0ELSERETURN 1

33、CREATE PROCEDURE Login_ADD userId varchar ( 10), password varchar ( 16), userName varchar ( 20), tel varchar ( 20), birthday smalldatetime ,registerTimesmalldatetime ,type nvarchar( 50)ASINSERT INTO Login( userId ,password, userName, tel , birthday , registerTime , type ) VALUES (userId , password,

34、userName ,tel , birthday , registerTime , type)CREATE PROCEDURE Login_Update userId varchar ( 10), password varchar ( 16), userName varchar ( 20), tel varchar ( 20), birthday smalldatetime , registerTime smalldatetime , type nvarchar ( 50)ASUPDATE Login SET password = password , userName = userName

35、, tel = tel , birthday = birthday , registerTime = registerTime , type = typeWHERE userId = userIdCREATE PROCEDURE Login_Delete userId varchar ( 10)ASDELETE Login WHERE userId = userIdCREATE PROCEDURE Login_GetModeluserId varchar ( 10)ASSELECTuserId , password , userName , tel , birthday , registerT

36、ime , type FROM Login WHERE userId = userIdCREATE PROCEDURE Login_GetListAS, typeSELECT, registerTimeuserId , password , userName , tel , FROM Login birthdayCREATE PROCEDURE Product_info_GetMaxIdASDECLARE TempID intSELECT TempID = max( proId )+1 FROM Product_infoIF TempID IS NULLRETURN 1ELSERETURN T

37、empIDCREATE PROCEDURE Product_info_ExistsproId intASDECLARE TempID int= proIdSELECT TempID = count ( 1) FROM Product_info WHERE proIdIF TempID = 0 RETURN 0ELSE RETURN 1CREATE PROCEDURE Product_info_ADD proId int output ,name varchar ( 50),price varchar ( 6),proDate smalldatetime , storage varchar (

38、4)ASINSERT INTO Product_info ( name , price , proDate , storage ) VALUES (name, price , proDate , storage )SET proId = IDENTITYCREATE PROCEDURE Product_info_UpdateproId int ,name varchar ( 50),price varchar ( 6),proDate smalldatetime ,storage varchar ( 4)ASUPDATE Product_info SET name = name, price

39、= price , proDate = proDate , storage = storageWHERE proId =proIdCREATE PROCEDURE Product_info_DeleteproId intASDELETE Product_info WHERE proId =proIdCREATE PROCEDURE Product_info_GetModelproId intASSELECTproId , name, price , proDate , storageFROM Product_info WHERE proId =proIdCREATE PROCEDURE Pro

40、duct_info_GetList ASSELECTproId , name, price , proDate , storage FROM Product_info CREATE PROCEDURE Repair_info_GetMaxIdASDECLARE TempID intSELECT TempID = max( repairId )+ 1 FROM Repair_info IF TempID IS NULLRETURN 1ELSERETURN TempIDCREATE PROCEDURE Repair_info_ExistsrepairId intASDECLARE TempID i

41、ntSELECT TempID = count ( 1) FROM Repair_info WHERE repairIdIF TempID = 0 RETURN 0ELSE RETURN 1CREATE PROCEDURE Repair_info_ADD repairId int output , repairName nchar ( 10), repairtel nchar ( 10 ), product varchar ( 50 ), customer varchar ( 20), date smalldatetime , customertel nchar ( 10)ASINSERT I

42、NTO Repair_info ( repairName , repairtel , product , customer , date , = repairIdcustomertel) VALUES (repairName , repairtel , product , customer , date , customertel )SET repairId = IDENTITYCREATE PROCEDURE Repair_info_UpdaterepairId int , repairName nchar ( 10), repairtel nchar ( 10 ),product varc

43、har ( 50 ), customer varchar ( 20), date smalldatetime , customertel nchar ( 10)ASUPDATE Repair_info SET repairName = repairName , repairtel = repairtel , product =product , customer = customer , date = date , customertel = customertelWHERE repairId =repairIdCREATE PROCEDURE Repair_info_Delete repai

44、rId intASDELETE Repair_info WHERE repairId =repairIdCREATE PROCEDURE Repair_info_GetModel repairId intASSELECT, product , customer , date , customertelrepairId , repairName , repairtel FROM Repair_info WHERE repairId =repairIdCREATE PROCEDURE Repair_info_GetListASSELECTrepairId , repairName , repair

45、tel , product , customer , date , customertel FROM Repair_info CREATE PROCEDURE Seller_info_Existsname varchar ( 50)ASDECLARE TempID intSELECT TempID = count ( 1) FROM Seller_info WHERE name =nameIF TempID = 0 RETURN 0ELSE RETURN 1CREATE PROCEDURE Seller_info_ADD name varchar ( 50),telephonevarchar(

46、 20),addressvarchar( 50 ),productvarchar( 50 ),stockNumvarchar( 6),stockDatestockPricesmalldatetimevarchar ( 10 )ASINSERT INTO Seller_info ( name , telephone , address , product ockPrice , stockNum , stockDate,st) VALUES (name, telephone , address , product , stockNum , stockDate , stockPri ceCREATE PROCEDURE Seller_info_Update name varchar ( 50),telephone varchar ( 20),address varchar ( 50 ),product varchar

温馨提示

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

评论

0/150

提交评论