IT技术交流论坛数据库设计文档2.docx

上传人:b****3 文档编号:26448333 上传时间:2023-06-19 格式:DOCX 页数:15 大小:71.47KB
下载 相关 举报
IT技术交流论坛数据库设计文档2.docx_第1页
第1页 / 共15页
IT技术交流论坛数据库设计文档2.docx_第2页
第2页 / 共15页
IT技术交流论坛数据库设计文档2.docx_第3页
第3页 / 共15页
IT技术交流论坛数据库设计文档2.docx_第4页
第4页 / 共15页
IT技术交流论坛数据库设计文档2.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

IT技术交流论坛数据库设计文档2.docx

《IT技术交流论坛数据库设计文档2.docx》由会员分享,可在线阅读,更多相关《IT技术交流论坛数据库设计文档2.docx(15页珍藏版)》请在冰豆网上搜索。

IT技术交流论坛数据库设计文档2.docx

IT技术交流论坛数据库设计文档2

 

黄淮学院IT技术交流论坛

的设计与实现

数据库设计说明书

版本:

1.0

 

文档信息及版本历史

文档信息

项目名称

黄淮学院IT技术论坛

文档名称

黄淮学院IT技术论坛数据库设计说明书

存储位置

版本

作者/修改者

日期

描述

1.0

第七小组组员

2014/3/26

开始撰写文档

 

目录

1引言2

1.1编写目的2

1.2术语表3

1.3数据库命名约定3

1.4参考资料3

2数据库环境说明3

3数据库的命名规则4

4概要设计4

5逻辑设计4

6物理设计4

6.1确定关系模型的存取方法4

6.2确定数据库的存储结构4

7存储过程、函数及触发器的设计5

8安全性设计5

8.1用户帐号密码的加密方法5

8.2角色与权限5

9数据库实施5

1引言

1.1编写目的

本文档是黄淮学院IT技术论坛概要设计文档的组成部分,编写数据库设计文档的目的是:

明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《黄淮学院IT技术交流论坛数据库设计和开发规范》。

本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。

1.2术语表

定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。

序号

术语或缩略语

说明性定义

1

PM

ProjectManager,项目经理

1.3数据库命名约定

前缀

说明

PK

表示主键

UK

表示唯一键

FK

表示外键

UI

表示唯一索引

NUI

表示非唯一索引

1.4参考资料

列出有关资料的名称、作者、文件编号或版本等。

参考资料包括:

1.需求说明书;

2.本项目的其它已发表的文件;

3.引用文件、资料、软件开发标准等。

资料名称

作者

文件编号、版本

资料存放地点

《数据库系统概念》

(美国等)希尔伯沙茨

ISBN:

9787111234227

驻马店市图书馆

《数据库系统概论》

王珊,萨师煊 著

ISBN:

9787040195835

驻马店市图书馆

2数据库环境说明

1.说明所采用的数据库系统,设计工具,编程工具等

2.详细配置

数据库实例

数据库管理系统

数据库部署环境

数据库设计工具

数据库存放位置

说明

BBS

SQLServer2005

Window7系统

rose

F:

\我的文档\大三下\软件综合实践\bbs.mdf

存储项目中所涉及的数据

3数据库的命名规则

本数据库设计完全按照《黄淮学院IT技术论坛数据库设计规范》命名。

1.实体(表)的命名

1)表以名词或名词短语命名,定义规则:

<分类>_<表达业务的名词或名词短语>

表名以<分类_>开头后面是业务名词或短语表达,不要缩写,多个单词间不加“_”,每个单词的首字母大写其他字母小写。

  2)关联类通过用下划线连接两个基本类之后,再加后缀_lk的方式命名。

  关联表用于保存多对多关系。

2.属性(列)的命名

1)列名的命名规则同表名的命名规则,大小写规则也是单词的首字母大写其他的小写。

2)尽量避免使用关键字作为列名,以免一些不必要的错误发生。

3)每张表必须至少有一个主键列。

4

概要设计

4.1主题帖子实体-属性图

4.2回帖实体-属性图

4.3板块实体-属性图

 

 

4.4用户实体-属性图

n1

11

nn

m1n1

n

m

5逻辑设计

1.按照转换原则把概要设计中的E_R图转换成对应的关系表,并进行规范化,要求达到第三范式。

2.设计必要的视图

表5-1BBSUser(论坛用户表)

字段名

中文名

类型

是否为空

备注

UID

用户ID

int

主键,自定增长

ULevel

用户等级

int

判断用户等级,如会员、版主、管理员,设定默认值为会员

UPassword

密码

varchar

UName

昵称

varchar

唯一值

UEmail

电子邮箱

varchar

唯一值

UBirthday

用户生日

datetime

USex

用户性别

int

 

表5-2BBSTopic(帖子表)

字段名

中文名

类型

是否为空

备注

TID

发帖ID

int

PK自定增长

TSID

所在版块

int

FK(引用版块表的SID)

TUID

发帖人

int

FK(引用版块表的UID)

RTID

回复帖子ID

int

TTitle

标题

varchar

TContent

内容

varchar

TPicture

发贴照片

varchar

TTime

发帖时间

datetime

 

表5-3BBSSetion(版块表)

字段名

中文名

类型

是否为空

备注

SID

版块ID

int

主键自定增长

SName

版块名称

varchar

SDescription

版块简介

varchar

SUID

版主

int

FK(引用用户表UID)

6物理设计

6.1确定关系模型的存取方法

在实际设计中最常用的存取方法是索引,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:

在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。

才能充分利用索引的作用避免因索引引起的负面作用。

数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。

所谓的“合理”主要有两个含义:

一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。

主要体现在后者。

(1)建立索引:

对帖子表在TID属性列上建立索引。

6.2确定数据库的存储结构

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

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

存储过程:

在删除发帖中,通过存储过程的方式进行,删除该发帖的回帖和删除该发帖的操作。

ifexists(select*fromsysObjectswherename='proc_Topic_Delete')

 dropprocproc_Topic_Delete

go

 createprocproc_Topic_Delete

  @errorSumintoutput, 

  @topicIDint   

 as

  set@errorSum=0

  begintransaction

  DELETEFROMBBSTopicWHERETID=@topicID

  set@errorSum=@errorSum+@@error

  DELETEFROMBBSTopicWHERETID=@topicID

  set@errorSum=@errorSum+@@error

  if@errorSum<>0  

   begin 

    rollbacktransaction

   end

  else

begin

    committransaction

   end

触发器:

对于复杂业务规则使用触发器,简单的完整性规则通过约束实现。

8安全性设计

根据系统需要设计相关用户和角色,并赋予相关操作权限。

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

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

8.2角色与权限

角色

可以访问的表与列

操作权限

管理员

可访问所有表

完全控制权限

版主

可以访问主题表

发表,删除,浏览,增加主题帖子

可以访问回帖表

发表,删除,浏览,添加回帖、

会员

可以访问主题表

发表,浏览,添加主题贴

可以访问回帖表

发表,浏览,添加回帖

游客

可以访问主题表

浏览主题帖子

可以访问回帖表

浏览回帖

9数据库实施

此阶段主要任务包括创建数据库,加载初始数据.

1.创建数据库脚本

CREATEDATABASE[bbs]ONPRIMARY

(NAME=N'bbs',FILENAME=N'F:

\我的文档\大三下\软件综合实践\bbs.mdf',SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)

LOGON

(NAME=N'bbs_log',FILENAME=N'F:

\我的文档\大三下\软件综合实践\bbs_log.ldf',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)

 

2.创建表脚本

2.1BBSUser(论坛用户表)

CREATETABLE[dbo].[BBSUser](

[UID][int]IDENTITY(1,1)NOTNULL,

[ULevel][int]NOTNULLCONSTRAINT[DF_BBSUser_ULevel]DEFAULT(

(1)),

[UPassword][varchar](20)NOTNULL,

[UName][varchar](20)NOTNULL,

[UEmail][varchar](50)NOTNULL,

[UBirthday][datetime]NULL,

[USex][int]NOTNULLCONSTRAINT[DF_BBSUser_USex]DEFAULT(

(1)),

CONSTRAINT[PK_BBSUser]PRIMARYKEYCLUSTERED

[UID]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

2.2BBSTopic(帖子表)

CREATETABLE[dbo].[BBSTopic](

[TID][int]IDENTITY(1,1)NOTNULL,

[TSID][int]NOTNULL,

[TUID][int]NOTNULL,

[RTID][int]NOTNULL,

[TTitle][varchar](50)NOTNULL,

[TContent][varchar](500)NULL,

[TPicture][varchar](50)NULL,

[TTime][datetime]NOTNULL,

CONSTRAINT[PK_BBSTopic]PRIMARYKEYCLUSTERED

[TID]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

2.3BBSSetion(版块表)

CREATETABLE[dbo].[BBSSection](

[SID][int]IDENTITY(1,1)NOTNULL,

[SName][varchar](20)NOTNULL,

[SDescription][varchar](50)NULL,

[SUID][int]NOTNULL,

CONSTRAINT[PK_BBSSection]PRIMARYKEYCLUSTERED

[SID]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

3.创建视图脚本

4.创建存储过程脚本

ifexists(select*fromsysObjectswherename='proc_Topic_Delete')

 dropprocproc_Topic_Delete

go

 createprocproc_Topic_Delete

  @errorSumintoutput, 

  @topicIDint   

 as

  set@errorSum=0

  begintransaction

  DELETEFROMBBSTopicWHERETID=@topicID

  set@errorSum=@errorSum+@@error

  DELETEFROMBBSTopicWHERETID=@topicID

  set@errorSum=@errorSum+@@error

  if@errorSum<>0  

   begin 

    rollbacktransaction

   end

  else

begin

committransaction

   end

5.创建函数脚本

CREATE  FUNCTION F_EMAIL

(@EMAIL VARCHAR(50))

RETURNS INT  --返回1是正确;返回0是错误

BEGIN

  DECLARE @VALUE INT,@LEN INT

  DECLARE @TMP VARCHAR(50)

  DECLARE @CHECK1 VARCHAR(50)

  DECLARE @CHECK2 VARCHAR(50)

  DECLARE @CHECK3 VARCHAR(50)

  SET @TMP=RTRIM(LTRIM(@EMAIL))

  SET @LEN=LEN(@TMP)

  IF @LEN-LEN(REPLACE(@TMP,'@',''))=1 AND @LEN-LEN(REPLACE(@TMP,'.',''))>=1 AND CHARINDEX('@',@TMP)<>1

  BEGIN

    SET @CHECK1=LEFT(@TMP,CHARINDEX('@',@TMP)-1)

    SET @CHECK2=STUFF(@TMP,1,CHARINDEX('@',@TMP),'')

    SET @CHECK3=STUFF(@CHECK2,1,CHARINDEX('.',@CHECK2),'')

    SET @CHECK2=LEFT(@CHECK2,CHARINDEX('.',@CHECK2)-1)

    IF LEN(@CHECK1)>0 and LEN(@CHECK2)>0 AND LEN(@CHECK3)>0

    BEGIN  

      IF  PATINDEX('%[^a-zA-Z0-9._-]%',@CHECK1)>0

        SET @VALUE=0

      ELSE

      BEGIN

        IF  PATINDEX('%[^a-zA-Z0-9_-]%',@CHECK2)>0

          SET @VALUE=0

        ELSE

        BEGIN

          IF CHARINDEX(UPPER(@CHECK2),UPPER('gmail,QQ,163,sina,yahoo'))>0 

      BEGIN

            IF  PATINDEX('%[^a-zA-Z0-9._-]%',@CHECK3)>0

              SET @VALUE=0

            ELSE SET @VALUE=1

       END

          ELSE SET @VALUE=0

        END

      END

    END

    ELSE SET @VALUE=0 

  END

  ELSE SET @VALUE=0 

RETURN @VALUE

END

6.创建触发器脚本

7.创建索引脚本

8.数据录入脚本

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1