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