《房屋租赁系统数据库设计文档.docx》由会员分享,可在线阅读,更多相关《房屋租赁系统数据库设计文档.docx(15页珍藏版)》请在三一办公上搜索。
1、房屋租赁发布系统的设计与实现数据库设计说明书版本:1.0文档信息及版本历史文档信息项目名称房屋租赁信息发布系统文档名称房屋租赁信息发布系统数据库设计说明书存储位置版本作者/修改者日期描述1.02014/3/26开始撰写文档目录1 引言31.1 编写目的31.2 术语表31.3 数据库命名约定31.4 参考资料32 数据库环境说明43 数据库的命名规则43.1 数据库(Database)的定义43.2表(Table)的定义43.3 字段(Field)的定义 43.4视图名43.5触发器名43.6存储过程名53.7变量名53.8命名中其他注意事项54 概要设计55 逻辑设计76 物理设计96.1
2、确定关系模型的存取方法错误!未定义书签。6.2 确定数据库的存储结构错误!未定义书签。7 存储过程、函数及触发器的设计98 安全性设计108.1 用户帐号密码的加密方法108.2 角色与权限109 数据库实施111引言1.1编写目的本文档是房屋租赁信息发布系统概要设计文档的组成部分,编写数据库设计 文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库 脚本的开发。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人 员。1.2术语表定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。序号术语或缩略语说明性定义1PMProject Manager,项目经
3、理1.3数据库命名约定前缀说明PK表示主键UK表示唯一键FK表示外键UI表示唯一索引NUI表示非唯一索引1.4参考资料参考资料包括:1. 数据库设计文档基本格式2. 房屋租赁信息发布系统需求说明书;3.资料名称作者文件编号、版本出版社数据库系统概论王珊、萨师煊第四版高等教育出版社2数据库环境说明数据库实例数据库管理系统数据库部 署环境数据库设 计工具数据库存放位 置说明名称: SQLServer, 版本:2005软硬件、网络环境visio,rose存放位置,绝 对路径/相对 路径3数据库的命名规则3.1数据库(Database)的定义数据库名称=数据库内容标识(首字大写)。3.2表(Table
4、)的定义a. 命名应尽量反映存储的数据内容。b. 表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统 一的标识。c. 表名称=表名前缀+表内容标识(首字大写)3.3字段(Field)的定义字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来 标示它的类型。字段名称=字段类型前缀+字段内容标识(首字大写)3.4视图名视图的名称=vw +视图内容标识(首字大写)3.5触发器名触发类型触发标识InsertiDeletedUpdateu触发名=tr +触发标识+相应的表名3.6存储过程名存储过程功能存储过程功能前缀添加a更新u删除d查询或其它o存储过程名称=存储过程功能前缀+
5、存储过程内容标识(首字大写)3.7变量名每个单词的首个字母为大写。3.8命名中其他注意事项禁止使用中文命名命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识 字符)。命名都采用英文字符,每个单词的首个字母要大写。4概要设计图4-1超级管理员实体属性图图4-2管理员实体属性图图4-3会员实体属性图游客图4-4游客实体属性图图4-5租赁信息实体属性图图4-6广告信息实体属性图过期时间图4-7整体E-R图发送时间5逻辑设计游客表(Visitor)中文名字段名字段类型长度是否为空主键描述临时IDIDVarchar()10Not nullprimary key会员表(VIP)中文名字
6、段名字段类型长度是否为空主键描述账号vnameVarchar()16Not nullprimary key密码passwordVarchar()16Not null邮箱e-mailVarchar()16Not null管理员表(Admin)中文名字段名字段类型长度是否为空主键描述账号anameVarchar()16Not nullprimary key密码passwordVarchar()16Not null超级管理员表(Superadmin)中文名字段名字段类型长度是否为空主键描述账号snameVarchar()16Not nullprimary key密码passwordVarchar()
7、16Not null出租信息表(Rent)中文名字段名字段类型长度是否为空主键描述信息编码rcodeVarchar()16Not nullprimary key会员账号vnameVarchar()16Not nullforeign key标题titleVarchar()20Not null地区areaVarchar()16小区名communityVarchar()16租金payflout详情描述contentVarchar()150Not null图片pictureImage()联系人contactsVarchar()16Not null联系电话phoneintNot null求租信息表(Fo
8、rrent)中文名字段名字段类型长度是否为空主键描述信息编码fcodeVarchar()16Not nullprimary key会员账号vnameVarchar()16Not nullforeign key标题titleVarchar()20Not null详情描述contentVarchar()150联系人contactsVarchar()16Not null联系电话phoneintNot null广告信息表(Advertisement)中文名字段名字段类型长度是否为空主键描述广告编码acodeVarchar()16Not nullprimary key发布日期fdataData()Not
9、 null类型titleVarchar()20Not null到期时间tdataData()Not null收藏表(Collect)中文名字段名字段类型长度是否为空主键描述会员账号vnameVarchar()16Not nullprimary keyforeignkey信息编码codeVarchar()16Not nullprimary key举报表(Report)中文名字段名字段类型长度是否为空主键描述举报人acodeVarchar()16Not nullprimary keyforeign key信息编码codeVarchar()16Not nullprimary key交流信息表(Dia
10、logue )中文名字段名字段类型长度是否为空主键描述编号NumVarchar()16Not nullprimary key发送者sendVarchar()16接受者receiveVarchar()16状态stateVarchar()4过期时间outtimeData()发送时间sendtimeData()大小dsizeflout6物理设计6.1确定关系模型的存取方法在实际设计中最常用的存取方法是索引,使用索引可以大大减少数据的查询时间,在 建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用 于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创
11、建索 引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索 引引起的负面作用。6.2 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、 日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。所以 系统将日志文件和数据文件存放在不同磁盘上。7存储过程、函数及触发器的设计存储过程:1. 根据房源一段时间的看房信息情况修改房源的状态,是否为热门房源。一个 月内看房数量达到5次以上为热门,一年内看房数量达到30次以上为热门 房源。2. 检查并注销
12、房源信息的存储过程,检查房源信息是否符合规范,如果发现虚 假信息则管理员注销该条房源信息。3. 如果会员被举报,管理员查证后,如果属于第一次被举报,管理员标记该会 员。如果属于第二次被举报,管理员删除该会员。触发器:1. 填写求租信息时,插入触发器,若最低价格小于房源出租价格,则操作失败。2. 添加房源的同时,根据房源的户型确定房源的类型,户主必须填写出租类型, 比如合租,单个房间出租,整间出租。3. 删除会员的同时删除房主所有的房源信息8安全性设计用户分为四类:游客、会员、管理员、超级管理员。游客只有浏览、举报的功能;会员除了有游客的功能还有对自己个人信 息的管理和发布的消息的管理;管理员来
13、管理平台的所有信息;超级管理员 来添加管理员和删除管理员。8.1用户帐号密码的加密方法用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密 码的安全性要求。8.2角色与权限角色可以访问的表与列操作权限超级管理员出租信息表求租信息表广告信息表管理员表 会员表交流信息表 举报表 收藏表 游客表超级管理员表完全控制权限管理员交流信息表 出租信息表 求租信息表 广告信息表 会员表 举报表 游客表会员管理广告管理租赁信息管理个人信息管理会员出租信息表求租信息表广告信息表交流信息表收藏表检索浏览发布求租信息发布出租信息修改个人信息游客出租信息表求租信息表广告信息表检索浏览注册9数据库实施1. 创
14、建数据库脚本if exists(select * from sys.sysdatabases where name=fwzlxt) beginuse masterdrop database fwzlxtendgocreate database fwzlxtgouse fwzlxtgo2. 创建表脚本管理员表create table Admin(aname varchar(16) primary key not null, password varchar(16) not null)go会员表create table VIP(vname varchar(16) primary key not n
15、ull, password varchar(16) not null, e-mail varchar(16) not null)go游客表create table Visitor(Id varchar(10) primary key Not null)go超级管理员表create table Superadmin(sname varchar(16) primary key not null, password varchar(16) not null)go出租信息表create table Rent(rcode varchar(16) primary key not null, vname v
16、archar(16) not null,title varchar(20) not null,area varchar(16) not null,community varchar(16) not null, pay float, content varchar(150), picture Image(), contacts varchar(16), phone int (15) not null, constraint fk_ Rent foreign key (vname) references VIP (vname), constraint chk_phone check(phone l
17、ike 10-90-90-90-90-90-9 0-90-90-90-9 ) ) go 求租信息表 create table Forrent (fcode varchar(16) primary key not null,vname varchar(16) not null,title varchar(20) not null,content varchar(150) not null,contacts varchar(16),phone int(15) not null,constraint fk_ Forrent foreign key (vname) references VIP (vn
18、ame), constraint chk_phone check(phone like 10-90-90-90-90-90-9 0-90-90-90-9 ) ) go 广告信息表 create table Advertisement (acode varchar(16) primary key not null,fdata not null,title varchar(20) not null, tdata Data()not null, ) go 交流信息表create table Dialogue (Num varchar(16) primary key not null,send var
19、char(16),receive varchar(16),state varchar(4),outtime varchar(),sendtime varchar(),dsize float) go 举报表create table Report (acode varchar(16) primary key not null,code varchar(16) primary key not null,constraint fk_report foreign key (acode) references Advertisement (acode) ) go 收藏表create table Collect(vname varchar(16) primary key not null,code varchar(16) primary key not null,constraint fk_collect foreign key (vname) references VIP (vname) ) go