(完整版)数据库设计文档模板

(完整版)数据库设计文档模板

2023年7月27日发(作者:)

文档编号

2011-6-14

版本

A1

密级

商密A

*****中心开发部

项目名称

时代集团产品跟踪平台

项目来源

DR-RD-020(V1.1)

时代集团

数据库设计说明书

(内部资料 请勿外传)

编 写:

检 查:

审 核:

批 准:

*********

版权所有 不得复制

日 期:

日 期:

日 期:

日 期:

时代集团产品跟踪平台 ........................................................................................... 错误!未定义书签。

数据库设计说明书 .................................................................................................................................. 1

1

引言.................................................................................................................................................. 2

1.1

1.2

1.3

2

3

4

5

编写目的 ................................................................................................................................. 2

术语表 ..................................................................................................................................... 2

参考资料 ................................................................................................................................. 3

数据库环境说明 .............................................................................................................................. 3

数据库的命名规则 .......................................................................................................................... 3

逻辑设计.......................................................................................................................................... 3

物理设计.......................................................................................................................................... 4

5.1

5.2

5.3

5.4

表汇总 ..................................................................................................................................... 5

表[X]:[XXX表] .................................................................................................................... 5

视图的设计 ........................................................................................................................... 11

存储过程、函数及触发器的设计 ........................................................................................ 12

6

安全性设计 .................................................................................................................................... 23

6.1

6.2

6.3

防止用户直接操作数据库的方法 ........................................................................................ 23

用户帐号密码的加密方法 ................................................................................................... 23

角色与权限 ........................................................................................................................... 23

7

8

优化................................................................................................................................................ 24

数据库管理与维护说明 ................................................................................................................ 24

1

引言

1.1 编写目的

本文档是时代集团产品跟踪平台

概要设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《SQL数据库设计和开发规范》。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。

1.2 术语表

序号

1

2

术语或缩略语

ESID

ProId

说明性定义

EnterStorageId入库编号

ProductId产品编号 3

PMID ProductManagerId产品管理员编号

1.3 参考资料

资料名称

作者

文件编号、版本

资料存放地点

2

数据库环境说明

数据库系统

数据库实例

数据库部署环境

数据库设计工具

数据库存放位置

说明

3

数据库的命名规则

数据库名称:时代集团的英文名称time-group

表名:英文(表的用途)+下划线+英文

字段名:相关属性的英文名

4

逻辑设计

提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类(class)。

合作伙伴partner_sett_rels合同:1inhr_partner_spinhr_partner_cp运营商coop_rels合同模板partner_sett_order服务提供商内容提供商结算帐单coop_settl_ordersp_coop_relscp_coop_relssettle_order_rels结算规则合同:2

5

物理设计

提示:

(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

N

唯一Y/N

Y

区别度

默认值

约束条件/说明

1

2

3

4

5

ESID

Product

date

num

int

Varchar(50)

Varchar(50)

N

N

N

N

N

N

Y

SmallDateTime N

storageManagerId

Varchar(50)

Mysql脚本 CREATE TABLE [dbo].[Enter_storage](

(

[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]

GO

SET ANSI_PADDING OFF

GO

[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

记录数

增长量

表的并发

补充说明

2.

表名

数据库用户

主键

其他排序字段

索引字段

序号 字段名称

Exit_storage

库存管理人员

ExitStorageId 出库产品编号

Product,date,num,storageManagerId

数据类型(精度范围)

允许为空Y/N

N

唯一Y/N

Y

区别度

默认值

约束条件/说明

1

2

3

4

5

ExitStorageId

Product

date

num

int

Varchar(50)

Varchar(50)

N

N

N

N

N

N

Y

SmallDateTime N

storageManagerId

Varchar(50)

Mysql脚本

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 = OFF, STATISTICS_NORECOMPUTE = OFF,

IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,

ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Object: Table [dbo].[Enter_storage] Script

Date: 01/17/2011 16:00:59 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

记录数

增长量

表的并发

补充说明

3.

表名

数据库用户

主键

其他排序字段

索引字段

序号 字段名称

Seller_info

销售商管理员

name

telephone,address,product, stockNum,stockDate,stockPrice

数据类型(精度范围)

允许为空Y/N

N

唯一Y/N

Y

区别度 默认值 约束条件/说明

1

2

3

4

5

6

7

name

telephone

address

product

stockNum

stockDate

Varchar(50)

Varchar(50)

Varchar(50)

Varchar(50)

N

N

N

N

N

N

N

N

N

N

SmallDateTime N

SmallDateTime N

stockPrice

Varchar(50)

Mysql脚本

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,

[stockPrice] [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_LOCKS = ON, ALLOW_PAGE_LOCKS

= ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Object: Table [dbo].[Repair_info] Script Date:

12/16/2010 09:59:13 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

记录数

增长量

表的并发

补充说明

4.

表名

数据库用户

Product_info

产品信息管理人员

主键

其他排序字段

索引字段

序号 字段名称

proId

name,price,proDate, storage

数据类型(精度范围)

允许为空Y/N

N

唯一Y/N

Y

区别度

默认值

约束条件/说明

1

2

3

4

proId

name

price

proDate

int

Varchar(50)

Varchar(50)

N

N

N

N

N

SmallDateTime N

5

storage

Mysql脚本

Varchar(50) N Y

CREATE 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, ALLOW_ROW_LOCKS = ON,

ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Object: Table [dbo].[Login] Script Date:

01/17/2011 16:00:59 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

记录数

增长量

表的并发

补充说明

5.

表名

数据库用户

主键

其他排序字段

索引字段

序号 字段名称

Repair_info

售后服务人员

repairId 产品维修编号

repairName,repairtel,product, customer,date,customertel

数据类型(精度范围)

允许为空Y/N

N

唯一Y/N

Y

区别度 默认值 约束条件/说明

1

2

3

4

5

repairId

repairName

repairtel

product

customer

date

int

Varchar(50)

Varchar(50)

Varchar(50)

N

N

N

N

N

N

N

N

SmallDateTime N

SmallDateTime N

customertel

Varchar(50)

Mysql脚本

N N

CREATE TABLE [dbo].[Repair_info](

[repairId] [int] IDENTITY(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_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS

= ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Object: Table [dbo].[Product_info] Script Date:

01/17/2011 16:00:59 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

记录数

增长量

表的并发

补充说明

6.

表名

数据库用户

主键

其他排序字段

索引字段

序号 字段名称

Login

管理人员

userId 用户编号

password,userName,tel, birthday,registerTime,type

数据类型(精度范围)

允许为空Y/N

N

唯一Y/N

Y

区别度 默认值 约束条件/说明

1

2

3

4

userId

password

userName

tel

int

Varchar(50)

Varchar(50)

N

N

N

N

N

SmallDateTime N

5

6

7

birthday

type

Mysql脚本

Varchar(50)

Varchar(50)

(

N

N

N

N

N

registerTime

SmallDateTime N

CREATE TABLE [dbo].[Login](

[userId] [varchar](10) NOT NULL,

[password] [varchar](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, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

记录数

增长量

表的并发

补充说明

5.3 视图的设计

[根据XXX产品的概要设计文档来确定。

视图的命名按照《xx数据库设计规范》中关于视图的命名规范命名。

视图的设计应注意以下几点:

1

尽量减少列中使用的公式。

2

去掉所有不必要的列。

3

不要使同一个文档属于多个分类。

4

避免使用表单公式。] 5.4 存储过程、函数及触发器的设计

[存储过程及触发器的命名按照《xx数据库设计规范》中关于存储过程及触发器的命名规范命名。

存储过程:根据具体得业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。

在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其他提供功能的过程。例如:不要定义强制数据完整性的过程(使用完整性约束)。

函数 :函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQL命令中使用函数。就好像建立自己的substr函数一样

触发器 :触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert,update或delete语句时执行。]

1.存储过程:

CREATE PROCEDURE Enter_storage_GetMaxId

AS

CREATE PROCEDURE Enter_storage_Exists

@ESID int

AS

DECLARE @TempID int

SELECT @TempID = count(1) FROM [Enter_storage] WHERE ESID=@ESID

IF @TempID = 0

RETURN 0

DECLARE @TempID int

SELECT @TempID = max([ESID])+1 FROM [Enter_storage]

IF @TempID IS NULL

RETURN 1

RETURN @TempID

ELSE

ELSE

RETURN 1

CREATE PROCEDURE Enter_storage_ADD

@ESID int output,

@product varchar(50),

@date smalldatetime,

@num varchar(6),

@storageManagerId nvarchar(50)

AS

CREATE PROCEDURE Enter_storage_Update

@ESID int,

@product varchar(50),

@date smalldatetime,

@num varchar(6),

@storageManagerId nvarchar(50)

AS

CREATE PROCEDURE Enter_storage_Delete

@ESID int

AS

CREATE PROCEDURE Enter_storage_GetModel

@ESID int

AS

SELECT

ESID,product,date,num,storageManagerId

FROM [Enter_storage]

WHERE ESID=@ESID

DELETE [Enter_storage]

WHERE ESID=@ESID

UPDATE [Enter_storage] SET

[product] = @product,[date] = @date,[num] = @num,[storageManagerId]

WHERE ESID=@ESID

INSERT INTO [Enter_storage](

[product],[date],[num],[storageManagerId]

)VALUES(

@product,@date,@num,@storageManagerId

)

SET @ESID = @@IDENTITY

= @storageManagerId CREATE PROCEDURE Enter_storage_GetList

AS

CREATE PROCEDURE Exit_storage_GetMaxId

AS

CREATE PROCEDURE Exit_storage_Exists

@ExitStorageId int

AS

CREATE PROCEDURE Exit_storage_ADD

@ExitStorageId int output,

@product varchar(50),

@date smalldatetime,

@num varchar(6),

@storageManagerId nvarchar(50)

AS

CREATE PROCEDURE Exit_storage_Update

@ExitStorageId int,

INSERT INTO [Exit_storage](

[product],[date],[num],[storageManagerId]

)VALUES(

@product,@date,@num,@storageManagerId

)

SET @ExitStorageId = @@IDENTITY

DECLARE @TempID int

SELECT @TempID = count(1) FROM [Exit_storage] WHERE

IF @TempID = 0

RETURN 0

RETURN 1

ELSE

DECLARE @TempID int

SELECT @TempID = max([ExitStorageId])+1 FROM [Exit_storage]

IF @TempID IS NULL

RETURN 1

RETURN @TempID

ELSE

SELECT

ESID,product,date,num,storageManagerId

FROM [Enter_storage]

ExitStorageId=@ExitStorageId @product varchar(50),

@date smalldatetime,

@num varchar(6),

@storageManagerId nvarchar(50)

AS

CREATE PROCEDURE Exit_storage_Delete

@ExitStorageId int

AS

CREATE PROCEDURE Exit_storage_GetModel

@ExitStorageId int

AS

CREATE PROCEDURE Exit_storage_GetList

AS

CREATE PROCEDURE Login_Exists

@userId varchar(10)

AS

DECLARE @TempID int

SELECT @TempID = count(1) FROM [Login] WHERE userId=@userId

IF @TempID = 0

RETURN 0

ELSE

SELECT

ExitStorageId,product,date,num,storageManagerId

FROM [Exit_storage]

SELECT

ExitStorageId,product,date,num,storageManagerId

FROM [Exit_storage]

WHERE ExitStorageId=@ExitStorageId

DELETE [Exit_storage]

WHERE ExitStorageId=@ExitStorageId

UPDATE [Exit_storage] SET

[product] = @product,[date] = @date,[num] = @num,[storageManagerId]

WHERE ExitStorageId=@ExitStorageId

= @storageManagerId

RETURN 1

CREATE PROCEDURE Login_ADD

@userId varchar(10),

@password varchar(16),

@userName varchar(20),

@tel varchar(20),

@birthday smalldatetime,

@registerTime smalldatetime,

@type nvarchar(50)

AS

CREATE PROCEDURE Login_Update

@userId varchar(10),

@password varchar(16),

@userName varchar(20),

@tel varchar(20),

@birthday smalldatetime,

@registerTime smalldatetime,

@type nvarchar(50)

AS

CREATE PROCEDURE Login_Delete

@userId varchar(10)

AS

CREATE PROCEDURE Login_GetModel

DELETE [Login]

WHERE userId=@userId

UPDATE [Login] SET

[password] = @password,[userName] = @userName,[tel] = @tel,[birthday]

WHERE userId=@userId

INSERT INTO [Login](

[userId],[password],[userName],[tel],[birthday],[registerTime],[t)VALUES(

@userId,@password,@userName,@tel,@birthday,@registerTime,@type

)

ype]

= @birthday,[registerTime] = @registerTime,[type] = @type @userId varchar(10)

AS

CREATE PROCEDURE Login_GetList

AS

CREATE PROCEDURE Product_info_GetMaxId

AS

CREATE PROCEDURE Product_info_Exists

@proId int

AS

CREATE PROCEDURE Product_info_ADD

@proId int output,

@name varchar(50),

@price varchar(6),

DECLARE @TempID int

SELECT @TempID = count(1) FROM [Product_info] WHERE proId=@proId

IF @TempID = 0

RETURN 0

RETURN 1

ELSE

DECLARE @TempID int

SELECT @TempID = max([proId])+1 FROM [Product_info]

IF @TempID IS NULL

RETURN 1

RETURN @TempID

ELSE

SELECT

userId,password,userName,tel,birthday,registerTime,type

FROM [Login]

SELECT

userId,password,userName,tel,birthday,registerTime,type

FROM [Login]

WHERE userId=@userId @proDate smalldatetime,

@storage varchar(4)

AS

CREATE PROCEDURE Product_info_Update

@proId int,

@name varchar(50),

@price varchar(6),

@proDate smalldatetime,

@storage varchar(4)

AS

CREATE PROCEDURE Product_info_Delete

@proId int

AS

CREATE PROCEDURE Product_info_GetModel

@proId int

AS

CREATE PROCEDURE Product_info_GetList

AS

SELECT

proId,name,price,proDate,storage

FROM [Product_info]

WHERE proId=@proId

DELETE [Product_info]

WHERE proId=@proId

UPDATE [Product_info] SET

[name] = @name,[price] = @price,[proDate] = @proDate,[storage] =

WHERE proId=@proId

INSERT INTO [Product_info](

[name],[price],[proDate],[storage]

)VALUES(

@name,@price,@proDate,@storage

)

SET @proId = @@IDENTITY

@storage

SELECT

proId,name,price,proDate,storage

FROM [Product_info]

CREATE PROCEDURE Repair_info_GetMaxId

AS

CREATE PROCEDURE Repair_info_Exists

@repairId int

AS

CREATE PROCEDURE Repair_info_ADD

@repairId int output,

@repairName nchar(10),

@repairtel nchar(10),

@product varchar(50),

@customer varchar(20),

@date smalldatetime,

@customertel nchar(10)

AS

]

)VALUES(

INSERT INTO [Repair_info](

[repairName],[repairtel],[product],[customer],[date],[customertelDECLARE @TempID int

SELECT @TempID = count(1) FROM [Repair_info] WHERE repairId=@repairId

IF @TempID = 0

RETURN 0

RETURN 1

ELSE

DECLARE @TempID int

SELECT @TempID = max([repairId])+1 FROM [Repair_info]

IF @TempID IS NULL

RETURN 1

RETURN @TempID

ELSE

@repairName,@repairtel,@product,@customer,@date,@customertel

)

SET @repairId = @@IDENTITY

CREATE PROCEDURE Repair_info_Update

@repairId int,

@repairName nchar(10),

@repairtel nchar(10),

@product varchar(50),

@customer varchar(20),

@date smalldatetime,

@customertel nchar(10)

AS

UPDATE [Repair_info] SET

[repairName] = @repairName,[repairtel] = @repairtel,[product] =

@product,[customer] = @customer,[date] = @date,[customertel] =

@customertel

CREATE PROCEDURE Repair_info_Delete

@repairId int

AS

CREATE PROCEDURE Repair_info_GetModel

@repairId int

AS

CREATE PROCEDURE Repair_info_GetList

SELECT

repairId,repairName,repairtel,product,customer,date,customertel

FROM [Repair_info]

WHERE repairId=@repairId

DELETE [Repair_info]

WHERE repairId=@repairId

WHERE repairId=@repairId AS

CREATE PROCEDURE Seller_info_Exists

@name varchar(50)

AS

CREATE PROCEDURE Seller_info_ADD

@name varchar(50),

@telephone varchar(20),

@address varchar(50),

@product varchar(50),

@stockNum varchar(6),

@stockDate smalldatetime,

@stockPrice varchar(10)

AS

ce

CREATE PROCEDURE Seller_info_Update

@name varchar(50),

@telephone varchar(20),

@address varchar(50),

@product varchar(50),

@stockNum varchar(6),

)

INSERT INTO [Seller_info](

[name],[telephone],[address],[product],[stockNum],[stockDate],[st)VALUES(

@name,@telephone,@address,@product,@stockNum,@stockDate,@stockPriDECLARE @TempID int

SELECT @TempID = count(1) FROM [Seller_info] WHERE name=@name

IF @TempID = 0

RETURN 0

RETURN 1

ELSE

SELECT

repairId,repairName,repairtel,product,customer,date,customertel

FROM [Repair_info]

ockPrice] @stockDate smalldatetime,

@stockPrice varchar(10)

AS

UPDATE [Seller_info] SET

[telephone] = @telephone,[address] = @address,[product] =

@product,[stockNum] = @stockNum,[stockDate] = @stockDate,[stockPrice] =

@stockPrice

CREATE PROCEDURE Seller_info_Delete

@name varchar(50)

AS

CREATE PROCEDURE Seller_info_GetModel

@name varchar(50)

AS

CREATE PROCEDURE Seller_info_GetList

AS

2.库存量增减的触发器:

USE [TimeGroup]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SELECT

name,telephone,address,product,stockNum,stockDate,stockPrice

FROM [Seller_info]

SELECT

name,telephone,address,product,stockNum,stockDate,stockPrice

FROM [Seller_info]

WHERE name=@name

DELETE [Seller_info]

WHERE name=@name

WHERE name=@name ALTER trigger [dbo].[producttri]

on [dbo].[Enter_storage]

after update

as

update Product_info

set storage=storage+1

where Product_info. proId =(select proId from inserted)

6

安全性设计

提示:提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。

例如:应用级的用户帐号密码不能与数据库相同,防止用户直接操作数据库。用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其它途径操作数据库。

6.1 防止用户直接操作数据库的方法

提示:用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库。

6.2 用户帐号密码的加密方法

提示:对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。

例如:用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全性要求。

Sa 密码登录

6.3 角色与权限

提示:确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。

角色

例如:管理员

可以访问的表与列

可访问所有表

完全控制权限

操作权限 角色B

7

优化

提示:分析并优化数据库的“时-空”效率,尽可能地“提高处理速度”并且“降低数据占用空间”。

(1)分析“时-空”效率的瓶颈,找出优化对象(目标),并确定优先级。

(2)当优化对象(目标)之间存在对抗时,给出折衷方案。

(3)给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。

优先级

优化对象(目标)

措施

8

数据库管理与维护说明

提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690431616a348965.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信