写在前面
一、环境配置二、数据库设计1.系统说明书(1)系统要求(2)E-R图(3)数据流图(4)数据结构(5)关系模式2.数据库实施(1)房主用户表(2)租赁者用户表(3)房屋表(4)看房记录表(5)收费记录表(6)留言表(7)空闲房屋视图(8)已看房屋视图(9)已租房屋视图本文写于数据库课程设计结课后,总结了完整的数据库设计流程以供参考学习。
一、环境配置
mysql版本:8.0.29 下载链接IDEA版本:ideaIU .1.1Tomcat版本:apache-tomcat-9.0.63二、数据库设计
1.系统说明书
(1)系统要求
某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者信息,以便快速地提供租赁服务。该系统具有以下功能:
登记房主信息。对于每名房主,系统需登记其姓名、住址和联系电话。登记房屋信息。所有在系统中登记的房屋都有一个唯一的识别号(对于新增加的房屋,系统会自动为其分配一个识别号)。除此之外,还需登记房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能容纳的房客数、租金及房屋状态(待租赁、已出租)。一名房主可以在系统中登记多个待租赁的房屋。登记租赁者信息。所有想通过该系统租赁房屋的租赁者,必须事先在系统中登记个人信息,包括:姓名、住址、电话号码、身份证编号、性别。租赁房屋。已经在系统中登记的租赁者,可以得到一分系统提供的待租赁房屋列表。一旦租赁者从中找到合适的房屋,就可以提出看房请求。系统会安排租赁者与房主见面。对于每次看房,系统会生成一条看房记录。收取手续费。每成功一次租赁服务,系统根据租赁价格按比例生成费用清单。变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态请求。用户论坛。租赁者在论坛上寻找合租对象、与房主进行交流。创建视图查询当前空闲的房屋的识别号、地址、房型、最多能容纳的房客数、租金、房主身份证号、房主姓名、房主联系电话。建立数据库相关表之间的参照完整性约束。
(2)E-R图
(3)数据流图
(4)数据结构
1、Owner_users(房主用户)数据结构:
House_owner=房主用户编号+用户名称+密码+真实姓名+住址+联系电话
2、Tenant_users(租赁者用户)数据结构:
Tenant_users=租赁者用户编号+用户名称+密码+真实姓名+住址+联系电话+性别
3、House(房屋)数据结构:
House=识别号+地址+房型+容量+租金+房屋状态+房主用户编号
4、Record(看房记录)数据结构:
Record=看房记录编号+租赁者用户编号+房屋识别号
5、Charge(收费记录)数据结构:
Charge=收费记录编号+金额+记录编号
6、Message(留言)数据结构:
Message=留言编号+留言内容+留言时间+房主用户编号+租赁者用户编号
(5)关系模式
根据E-R图向关系模型的转换原则,房屋租赁管理系统的E-R图可以转换为下列关系模式:
Owner_users(OID,userName,password,OName,OAddress,OTelephone),主码OID,无外码Tenant_users(TID,userName,password,TName,TAddress,TTelephone,TSex),主码TID,无外码House(HID,HAddress,layout,capacity,rent,con,OID),主码HID,外码OIDRecord(RID,TID,HID),主码RID,外码TID,HIDCharge(CID,amount,RID),主码CID,外码RIDMessage(MID,content,createDate,OID,TID),主码MID,外码OID,TID
2.数据库实施
(1)房主用户表
CREATE TABLE Owner_users (OID INT AUTO_INCREMENT PRIMARY KEY,userName CHAR ( 10 ) NOT NULL,password BLOB NOT NULL,OName VARCHAR ( 10 ) NOT NULL,OAddress VARCHAR ( 30 ) NOT NULL,OTelephone VARCHAR ( 20 ) NOT NULL);
(2)租赁者用户表
CREATE TABLE Tenant_users (TID INT AUTO_INCREMENT PRIMARY KEY,userName CHAR ( 10 ) NOT NULL,password BLOB NOT NULL,TName VARCHAR ( 10 ) NOT NULL,TAddress VARCHAR ( 30 ) NOT NULL,TTelephone VARCHAR ( 20 ) NOT NULL,TSex ENUM('男','女') DEFAULT '男');
(3)房屋表
CREATE TABLE House (HID INT AUTO_INCREMENT PRIMARY KEY,HAddress CHAR ( 30 ) NOT NULL,layout VARCHAR ( 10 ) NOT NULL,capacity INT NOT NULL,rent INT NOT NULL,con TINYINT NOT NULL,OID INT NOT NULL,FOREIGN KEY ( OID ) REFERENCES Owner_users( OID ));
(4)看房记录表
CREATE TABLE Record (RID INT AUTO_INCREMENT PRIMARY KEY,TID INT NOT NULL,HID INT NOT NULL,FOREIGN KEY ( TID ) REFERENCES Tenant_users ( TID ),FOREIGN KEY ( HID ) REFERENCES House ( HID ));
(5)收费记录表
CREATE TABLE Charge(CID INT AUTO_INCREMENT PRIMARY KEY,amount DOUBLE NOT NULL,RID INT NOT NULL,FOREIGN KEY ( RID ) REFERENCES Record ( RID ));
(6)留言表
CREATE TABLE Message(MID INT AUTO_INCREMENT PRIMARY KEY,content VARCHAR( 500 ) NOT NULL,createDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,OID INT,TID INT,FOREIGN KEY ( OID ) REFERENCES Owner_users ( OID ),FOREIGN KEY ( TID ) REFERENCES Tenant_users ( TID ));
(7)空闲房屋视图
CREATE VIEW Vacant_house(HID,HAddress,layout,capacity,rent,OID,OName,OTelephone)AS SELECT HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephoneFROM House,Owner_usersWHERE House.OID = Owner_users.OID AND House.con = 0;
(8)已看房屋视图
CREATE VIEW Seen_house(RID,HID,HAddress,layout,capacity,rent,OID,OName,OTelephone,TID)AS SELECT RID,House.HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephone,Tenant_users.TIDFROM House,Tenant_users,Record,Owner_usersWHERE House.HID = Record.HID AND Tenant_users.TID = Record.TID AND House.OID = Owner_users.OID;
(9)已租房屋视图
CREATE VIEW Rented_house(CID,TID,HID,HAddress,layout,capacity,rent,OID,OName,OTelephone,amount)ASSELECT CID,TID,House.HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephone,amountFROM House,Charge,Owner_users,RecordWHERE Charge.RID = Record.RID AND Record.HID = House.HID AND Owner_users.OID = House.OID;
如果觉得《【数据库设计】mysql+jsp实现房屋租赁管理系统(数据库部分)》对你有帮助,请点赞、收藏,并留下你的观点哦!