资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
7.数据库设计说明书
数据库设计说明书的编制目的是对于设计中的数据库所有标识、 逻辑结构和理结构作出具体的设计规定。其内容要求如下:
7.1 引言
7.1.1 编写目的
为了让参与本项目的项目主管、 业务分析师、 项目开发人员、 数据库管人员及以后的系统维护人员了解本系统的数据库设计思路、 数据库整体架构及各种详细信息, 也为了以后的各个项目能够参与借鉴该项目的经验, 特编写此文档。
7.1.2 背景
软件名称: BBS论坛
需在windows操作系统下运行。配置要求: SQL数据库, jsp,JAVA等该软件需与数据库连接使用才能运行。
7.1.3 定义
文档中采用的专门术语的定义及缩略词简要如下:
JAVA:Java script
Jsp: Java Server Pages Microsoft SQL Server
VSS: Visual SourceSafe,版本控制工具
7.1.4 参考资料
《java web 开发实战经典》 出版社: 清华大学出版社; 第1版
《JAVA2程序设计基础教程》 计算机职业教育联盟 主编 清华大学出版社 出版
《SQL Server数据库基础教程》 计算机职业教育联盟 主编 清华大学出版社 出版
《实用操作系统教程》 葛瀛龙 周旭等 编著 机械工业出版社 出版
《计算机网络技术》 施晓秋 主编 科学出版社 出版
7.外部设计
是研究和考虑所要建立的数据库的信息环境, 对数据库应用领域中各种信息要求和操作要求进行详细地分析, 了解应用领域中数据项、 数据项之间的关系和所有的数据操作的详细要求, 了解哪些因素对响应时间、 可用性和可靠性有较大的影响等各方面的因素。
7.2.1 标识符和状态
数据库名称: BBS论坛数据库
数据库表前缀: bro
用户名: root
密码: 123456
权限: 全部
有效时间: 开发阶段
说明: 系统正式发布后, 可能更改数据库用户/密码, 请在统一位置编写数据库连接字符串, 在发行前请予以改正。
7. 2.2 使用它的程序
本系统主要利用PHP作为前端的应用开发工具, 使用MySQL作为后台的数据库, Linux或Windows均可作为系统平台。
7.2.3 约定
1.所有命名一定要具有描述性, 杜绝一切拼音、 或拼音英文混杂的命名方式。 n
2.字符集采用 UTF-8, 请注意字符的转换。
3.所有数据表第一个字段都是系统内部使用主键列, 自增字段, 不可空, 名称为: id, 确保不把此字段暴露给最终用户。
4.除特别说明外, 所有日期格式都采用int格式, 无时间值。
5.除特别说明外, 所有字段默认都设置不充许为空, 需要设置默认值。 n
6.所有普通索引的命名都是表名加设置索引的字段名组合, 例如用户表User中name字段设置普通索引, 则索引名称命名方式为user_name;
7.2.4 专门指导
7.2.5 支持软件
操作系统: Linux / Windows
数据库系统: MySQL 查询浏览工具: PHPMyAdmin 命令行工具: mysql
注意: mysql命令行环境下对中文支持不好, 可能无法书写带有中文的 SQL 语句, 也不要使用PHPMyAdmin录入中文。
7.3 结构设计
7.3.1 概念结构设计
经过对用户需求进行综合、 归纳与抽象, 形成一个独立于具体DBMS的概念模型, 能够用E-R图表示。概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型能够转换为计算机上某一DBMS支持的特定数据模型。
BBS论坛系统数据库需要包含7张表: 管理员信息表, 用户信息表, 主题帖信息表, 跟帖信息表, 用户称谓表, 主题帖所属模块表, 帮助信息表; 根据以上数据库概念与结构设计下面表1
表名
功能说明
tb_Admin
管理员信息表
tb_User
用户信息表
tb_Card
主题帖信息表
tb_RevertCard
跟帖信息表
tb_Mark
用户称谓表
tb_Module
主题帖所属模块表
tb_Help
帮助信息表
7.3.2 逻辑结构设计
用户信息 User
userID pk
userName
userPassword
userSex
userEmail
userBirthday
userBrief
userShutup
userQuestion
userAnswer
createTime
帖子信息 Note
NoteID pk
Title
Content
Createtime
Rank
TopicID fk
userID
主题信息 Topic
TopicID pk
Title
Createtime
userID
BlockID fk
IsTop
IsFine
Scan
Reply
子版块信息 Block
BlockID pk
Name
TreeID fk
userID fk2
BolletinID fk3
父版块信息 Tree
TreeID pk
Name
Fk_topicID
Fk_blockID
Fk_treeID
公告信息 Bulletin
BulletinID pk
Msg
BlockID fk
Createtime
Fk_userID
Fk_ BolletinID
用户信息 User
userID pk
userName
userPassword
userSex
userEmail
userBirthday
userBrief
userShutup
userIsbanzhu
userQuestion
userAnswer
帖子信息 Note
NoteID pk
Title
Content
Creatuser
Createtime
Rank
TopicID fk
userID
主题信息 Topic
TopicID pk
Title
BlockID fk
IsTop
IsFine
Scan
Reply
子版块信息 Block
BlockID pk
Name
Msg
TreeID fk
BanzhuID
父版块信息 Tree
TreeID pk
Name
Fk_topicID
Fk_blockID
Fk_treeID
7.3.3 物理结构设计
表空间规划及物理存储参数
名称(tablespace_name): ERMISIDX;
数据文件名(datafile_name): EDATAIDX.DBF;
数据文件路径(datafile_path): $ORACLE_HOME/ORADATA/ERMIS/;
数据文件初始尺寸(datafile_size): 500M;
数据文件扩展方式(extend model):自动扩展,每次扩展大小为10M;
数据文件最大尺寸(MAXSIZE): 无限制;
表空间SQL规程
索引表空间ZFAQIDX
CREATE TABLESPACE ERMISIDX
DATAFILE
'$ORACLE_HOME/ORADATA/ERMIS/EDATAIDX.DBF'
SIZE 500M
AUTOEXTEND ON
NEXT 10M
MAXSIZE UNLIMITED
DEFAULT STORAGE
(
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS
)
ONLINE
/
7.4 运用设计
7.4.1 数据字典设计
表名的命名规范
表名以英文单词、 单词缩写、 简写、 下划线构成, 总长度Oracle要求小于30位。
Ø 表以名词或名词短语命名, 表名采用单数形式, 表的别名定义规则是: 如果表名是一个单词, 别名就取单词的前4个字母; 如果表名是两个单词, 就各取两个单词的前两个字母组成4个字母长的别名; 如果表的名字由3个单词组成, 从头两个单词中各取一个然后从最后一个单词中再取出两个字母, 结果还是组成4字母长的别名, 其余依次类推。单词间使用下划线作为分隔( 因为有的数据库不识别大小写) 。
Ø 举例来说: user, material, r_mate_user, 是好的命名。users, ma, material_user是不好的命名。
Ø 所有的基本表前面加上前缀z。目的是将这些值列表类排序在数据库最后。
Ø 所有的冗余表的命名(主要是累计表)前面加上前缀x。冗余表是为了提高数据库效率, 非规范化数据库的时候加入的字段或者表。
Ø 关联表经过用下划线连接两个基本类之后, 再加前缀r的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。关联表用于且仅用于保存多对多系。如果被关联的表名大于10个字母, 必须将原来的表名的进行缩写。如果没有其它原因, 建议都使用缩写。
举例: 表object与自身存在多对多的关系,则保存多对多关系的表命名为: r_object; 表 depart和employee;存在多对多的关系; 则关联表命名为r_dept_empl。
表字段命名规范
字段名以英文单词、 单词缩写、 简写、 下划线构成, 总长度Oracle要求小于30位。
Ø 字段名以名词或名词短语命名, 字段名采用单数形式。若表名由多个单词组成, 则取各个单词的缩写组成, 单词缩写间使用下划线作为分隔( 因为有的数据库不识别大小写) 。
Ø 若某个字段是引用某个表的外键, 则字段名应尽量与源表的字段名保持一致, 以免混淆。
7.4.2 安全保密设计
在数据库的设计中, 将如何经过区分不同的访问者、 不同的访问类型和不同的数据对象, 进行分别对待而获得的数据库安全保密的设计考虑。
展开阅读全文