当前位置:文档之家› 房屋租赁系统数据库设计

房屋租赁系统数据库设计

房屋租赁系统数据库设计
房屋租赁系统数据库设计

~

房屋租赁发布系统的设计与实现

数据库设计说明书

版本:

文档信息及版本历史

目录

1引言 (3)

编写目的 (3)

术语表 (3)

数据库命名约定 (3)

参考资料 (3)

2数据库环境说明 (4)

3数据库的命名规则 (4)

数据库(D ATABASE)的定义 (4)

表(T ABLE)的定义 (4)

字段(F IELD)的定义 (4)

视图名 (4)

触发器名 (4)

存储过程名 (5)

变量名 (5)

命名中其他注意事项 (5)

4概要设计 (5)

5逻辑设计 (7)

6物理设计 (9)

确定关系模型的存取方法 (9)

确定数据库的存储结构 (9)

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

8安全性设计 (10)

用户帐号密码的加密方法 (10)

角色与权限 (10)

9数据库实施 (11)

1引言

1.1编写目的

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

1.2术语表

1.3数据库命名约定

1.4参考资料

参考资料包括:

1.《数据库设计文档基本格式》

2数据库环境说明

3数据库的命名规则

数据库(Database)的定义

数据库名称 = 数据库内容标识(首字大写)。

表(Table)的定义

a.命名应尽量反映存储的数据内容。

b.表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识。

c.表名称 = 表名前缀 + 表内容标识(首字大写)

字段(Field)的定义

字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。

字段名称 = 字段类型前缀 + 字段内容标识(首字大写)

视图名

视图的名称 = "vw" + 视图内容标识(首字大写)

触发器名

触发类型触发标识

-----------------------------------

Inserti

Deleted

Updateu

触发名= "tr" + 触发标识 + 相应的表名

存储过程名

存储过程功能存储过程功能前缀

----------------------------------------

添加a

更新u

删除d

查询或其它o

存储过程名称 = 存储过程功能前缀 + 存储过程内容标识(首字大写)变量名

每个单词的首个字母为大写。

命名中其他注意事项

禁止使用中文命名!!!!!

命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。

命名都采用英文字符,每个单词的首个字母要大写。

4概要设计

图4-1 超级管理员实体属性图

图4-2 管理员实体属性图

图4-3 会员实体属性图

图4-4 游客实体属性图

图4-5 租赁信息实体属性图

图4-6 广告信息实体属性图

图 4-7 整体E-R图

5逻辑设计

游客表(Visitor)

会员表(VIP)

管理员表(Admin)

超级管理员表(Superadmin)

出租信息表(Rent)

求租信息表(Forrent)

广告信息表(Advertisement)

收藏表(Collect)

举报表(Report)

交流信息表(Dialogue)

6物理设计

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

在实际设计中最常用的存取方法是索引,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。

6.2确定数据库的存储结构

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

将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。所以系统将日志文件和数据文件存放在不同磁盘上。

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

存储过程:

1.根据房源一段时间的看房信息情况修改房源的状态,是否为热门房源。一个

月内看房数量达到5次以上为热门,一年内看房数量达到30次以上为热门房源。

2.检查并注销房源信息的存储过程,检查房源信息是否符合规范,如果发现虚

假信息则管理员注销该条房源信息。

3.如果会员被举报,管理员查证后,如果属于第一次被举报,管理员标记该会

员。如果属于第二次被举报,管理员删除该会员。

触发器:

1.填写求租信息时,插入触发器,若最低价格小于房源出租价格,则操作失败。

2.添加房源的同时,根据房源的户型确定房源的类型,户主必须填写出租类型,

比如合租,单个房间出租,整间出租。

3.删除会员的同时删除房主所有的房源信息

8安全性设计

用户分为四类:游客、会员、管理员、超级管理员。

游客只有浏览、举报的功能;会员除了有游客的功能还有对自己个人信息的管理和发布的消息的管理;管理员来管理平台的所有信息;超级管理员来添加管理员和删除管理员。

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

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

8.2角色与权限

9数据库实施

1.创建数据库脚本

if exists(select * from where name='fwzlxt') begin

use master

drop database fwzlxt

end

go

create database fwzlxt

go

use fwzlxt

go

2.创建表脚本

管理员表

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 null,

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 varchar(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 like‘1[0-9][0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-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 (vname), constraint chk_phone check(phone like‘1[0-9][0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-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 varchar(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`

相关主题
文本预览
相关文档 最新文档