数据库-MySQL 实战项目——房屋租赁管理系统数据库设计与实现(附源码)

一、前言

需求:

房屋租赁管理系统主要完成功能为:

  1. 房屋信息管理
  2. 出租者信息管理
  3. 求租者信息管理
  4. 房屋出租信息管理
  5. 系统管理(员工信息管理、绩效管理等)

备注:

        1. 一个房屋有多个求租者。(一对多)

        2. 一个房屋由多名员工销售,一个员工管理多个房屋。(多对多)

        3. 一个员工负责多个求租者,一个求租者可选择多个员工。(多对多)

        4. 一个出租者面向多个求租者,一个求租者可选择多个出租者。(多对多)

        5. 一个求租者可发多条求租留言,一个出租者可发多条出租留言。(一对多)

其中:

        房屋信息包含下列属性:地址,价格,房号,面积。

        出租者包含下列属性:出租者身份证,出租者姓名,出租者性别,出租者电话号码,出租者年龄。

        求租者包含下列属性:求租者身份证,求租者姓名,求租者性别,求租者电话号码,求租者年龄。

        员工出租包含下列属性:员工编号,员工姓名,员工性别,员工电话号码,员工年龄。

        留言包含属性:留言时间,留言内容,留言编号

        关于出租房屋要描述出租日期和出租金额

        关于员工绩效要描述售房数量

所需环境

  1.  MySQL可视化工具:navicat;
  2.  数据库:MySql 5.7/8.0等版本均可;

 二、E-R图数据库-MySQL 实战项目——房屋租赁管理系统数据库设计与实现(附源码)_第1张图片

三、关系模式

房屋(房号,地址,价格,面积)

员工(员工编号,员工姓名,员工性别,员工年龄,员工电话)

求租者(求租者身份证,求租者姓名,求租者性别,求租者电话,求租者年龄)

留言(留言编号,留言内容,留言时间,求租者身份证,出租者身份证)

出租者(出租者身份证,出租者姓名,出租者性别,出租者电话,出租者年龄)

绩效(员工编号房号,售房数量)

房屋出租(员工编号求租者身份证,出租日期,出租金额)

四、数据表的设计 

表1:出租者

字段

数据类型

长度

备注

出租者身份证

varchar

50

主键

出租者姓名

varchar

50

not NULL

出租者性别

varchar

50

not NULL

出租者电话

varchar

50

not NULL

出租者年龄

varchar

50

not NULL

表2:员工

字段

数据类型

长度

备注

员工编号

varchar

50

主键

员工姓名

varchar

50

not NULL

员工性别

varchar

50

not NULL

员工年龄

varchar

50

not NULL

员工电话

varchar

50

not NULL

表3:求租者

字段

数据类型

长度

备注

求租者身份证

varchar

50

主键

求租者姓名

varchar

50

not NULL

求租者性别

varchar

50

not NULL

求租者电话

varchar

50

not NULL

求租者年龄

varchar

50

not NULL

表4:房屋

字段

数据类型

长度

备注

房号

varchar

50

主键

地址

varchar

50

not NULL

价格

varchar

50

not NULL

面积

varchar

50

not NULL

表5:留言

字段

数据类型

长度

备注

留言编号

varchar

50

主键

留言内容

Varchar

50

Not null

留言时间

date

not NULL

求租者身份证

varchar

50

外键

出租者身份证

varchar

50

外键

表6:绩效

字段

数据类型

长度

备注

员工编号

varchar

50

主键

房号

varchar

50

主键

售房数量

varchar

50

not NULL

表7:房屋出租

字段

数据类型

长度

备注

求租者身份证

varchar

50

主键

出租者身份证

varchar

50

主键

出租日期

date

not NULL

出租金额

varchar

50

Not null

五、创建数据库 

Create database 房屋租赁管理系统 character set utf8 collate utf8_general_ci 
-- 在新建表前选择数据库
Use 房屋租赁管理系统

创建各实体表:

表1:出租者

create table 出租者
(
     出租者身份证 VARCHAR(50) PRIMARY KEY,
     出租者姓名 VARCHAR(50) NOT NULL,
     出租者性别 VARCHAR(50) NOT NULL,
     出租者电话 VARCHAR(50) NOT NULL,
     出租者年龄 VARCHAR(50) NOT NULL
)

表2:员工

create table 员工
(
	员工编号 varchar(50) PRIMARY KEY,
	员工姓名 varchar(50) not NULL,
	员工性别 varchar(50) not NULL,
	员工年龄 varchar(50) not NULL,
	员工电话 varchar(50) NOT NULL
)

表3:求租者

Create table 求租者
(
	求租者身份证 VARCHAR(50) PRIMARY KEY,
	求租者姓名 VARCHAR(50) NOT NULL,
	求租者性别 VARCHAR(50) NOT NULL,
	求租者电话 varchar(50) not null,
	求租者年龄 varchar(50) NOT NULL
)

表4:房屋

CREATE table 房屋
(
	房号 varchar(50) PRIMARY KEY,
	地址 VARCHAR(50) NOT NULL,
	价格 VARCHAR(50) NOT NULL,
	面积 varchar(50) not null
)

表5:留言

Create table 留言
(
	留言编号 varchar(50) PRIMARY KEY,
	留言内容 varchar(50) not null,
	留言时间 date NOT NULL,
	出租者身份证 varchar(50),
	求租者身份证 varchar(50),
	FOREIGN KEY(出租者身份证) REFERENCES 出租者(出租者身份证),
	FOREIGN KEY(求租者身份证) REFERENCES 求租者(求租者身份证)
)

表6:绩效

create table 绩效
(
	员工编号 varchar(50) NOT NULL,
	房号 varchar(50) not NULL,
    售房数量 varchar(50) NOT NULL,
	PRIMARY KEY(员工编号,房号)
)

表7:房屋出租

CREATE TABLE 房屋出租
(
    求租者身份证 VARCHAR(50),
    出租者身份证 VARCHAR(50),
    出租日期 date not null,
    出租金额 varchar(50) ,
	PRIMARY KEY(求租者身份证,出租者身份证)
) 

插入数据:

1. 出租者

Insert into 出租者 values('500118200403128804','张三','男','13612345678','18');
Insert into 出租者 values('500118200203128804','李湘','女 ','13703456784','20');
Insert into 出租者 values('500118200403128808','秋兰','女','13882346743','26');
Insert into 出租者 values('500118200403128811','陈浩','男','13998762345','29');
Insert into 出租者 values('500118200403128833','张杰','男','13976543214','20');
Insert into 出租者 values('500118200403128857','秦久','男','13477651289','37');
Insert into 出租者 values('500118200403128835','夏紫晴','女','13979512365','38');
Insert into 出租者 values('500118200403128824','杨帆','男','13639082678','44');
Insert into 出租者 values('500118200403128818',' 陈柏','女','13125674321','30');
Insert into 出租者 values('500118200403128866','李思雨','女','13549095672','25');

2. 员工

Insert into 员工 values ('Y001','游惑','男','27','17598760912');
Insert into 员工 values ('Y002','邱玲','女','22','17598765743');
Insert into 员工 values ('Y003','秦究','男','29','17598768088');

3. 求租者

INSERT INTO 求租者 VALUES ('511322200501293220', '张一', '男', '13612345670','30');
INSERT INTO 求租者 VALUES ('511322200501293221', '张二', '男', '13612345671','31');
INSERT INTO 求租者 VALUES ('511322200501293222', '何三', '女', '13612345672','32');
INSERT INTO 求租者 VALUES ('511322200501293223', '张四', '女', '13612345673','33');
INSERT INTO 求租者 VALUES ('511322200501293224', '张五', '女', '13612345674','34');
INSERT INTO 求租者 VALUES ('511322200501293225', '张六', '男', '13612345675','35');
INSERT INTO 求租者 VALUES ('511322200501293226', '张七', '男', '13612345676','36');
INSERT INTO 求租者 VALUES ('511322200501293227', '张八', '女', '13612345677','37');
INSERT INTO 求租者 VALUES ('511322200501293228', '张九', '男', '13612345678','38');
INSERT INTO 求租者 VALUES ('511322200501293229', '张十', '男', '13612345679','39');

4. 房屋

Insert into 房屋 values ('F1','长城路5号','55万','239平方米');
Insert into 房屋 values ('F2','长江路64号','53万','220平方米');
Insert into 房屋 values ('F3','黄河路93号','68万','259平方米');
Insert into 房屋 values ('F4','泰山路59号','99万','400平方米');
Insert into 房屋 values ('F5','青城山路23号','78万','290平方米');
Insert into 房屋 values ('F6','百佛路5号','79万','300平方米');
Insert into 房屋 values ('F7','安全路34号','66万','250平方米');
Insert into 房屋 values ('F8','天街路25号','90万','360平方米');
Insert into 房屋 values ('F9','长阶路48号','95万','380平方米');
Insert into 房屋 values ('F10','通天路31号','54万','210平方米');

5. 留言

Insert into 留言 values('L001','房屋地址','2023-05-01','500118200203128804','511322200501293220');
Insert into 留言 values('L002','房屋类型','2023-05-02','500118200403128804','511322200501293221');
Insert into 留言 values('L003','房屋价格','2023-05-03','500118200403128808','511322200501293222');
Insert into 留言 values('L004','房屋面积','2023-05-04','500118200403128811','511322200501293223');
Insert into 留言 values('L005','房屋地址','2023-05-05','500118200403128818','511322200501293224');
Insert into 留言 values('L006','房屋价格','2023-05-06','500118200403128824','511322200501293225');
Insert into 留言 values('L007','房屋租金','2023-05-07','500118200403128833','511322200501293226');
Insert into 留言 values('L008','房屋地址','2023-05-08','500118200403128835','511322200501293227');
Insert into 留言 values('L009','房屋面积','2023-05-09','500118200403128857','511322200501293228');
Insert into 留言 values('L0010','房屋类型','2023-05-10','500118200403128866','511322200501293229'); 

6. 绩效

INSERT INTO 绩效 VALUES ('Y001','F1','1')
INSERT INTO 绩效 VALUES ('Y002','F2','2')
INSERT INTO 绩效 VALUES ('Y003','F10','10')

7. 房屋出租

Insert into 房屋出租 values('511322200501293220','500118200403128804','2023-05-13','5K')
Insert into 房屋出租 values('511322200501293221','500118200203128804','2023-05-14','3K')
Insert into 房屋出租 values('511322200501293222','500118200403128808','2023-05-15','5K')
Insert into 房屋出租 values('511322200501293223','500118200403128811','2023-05-16','3.5K')
Insert into 房屋出租 values('511322200501293224','500118200403128833','2023-05-17','7K')
Insert into 房屋出租 values('511322200501293225','500118200403128857','2023-05-18','9K')
Insert into 房屋出租 values('511322200501293226','500118200403128835','2023-05-19','6K')
Insert into 房屋出租 values('511322200501293227','500118200403128824','2023-05-20','8K')
Insert into 房屋出租 values('511322200501293228','500118200403128818','2023-05-21','5K')
Insert into 房屋出租 values('511322200501293229','500118200403128866','2023-05-22','4K')

六、索引:

        作用是为了加快查询速度,提高查询效率(查字典)

命令格式:

create index 索引名字 on 表名(字段名)
例如:
create index 房屋索引 on 房屋(房号,地址,价格,面积)

查看索引

Show index from 表名

去掉索引:

Drop index 索引名字 on 表名

七、视图:

(1)简化查询:

        通过视图可以将复杂的SQL查询语句封装起来,提供更简单和易于理解的查询接口,减少了重复编写SQL语句的工作量,同时也减少了编写错误的机会。

(2)提高查询效率:

        视图可以提供对数据库的一种“预先计算”,在多次查询中避免了重复计算,从而提高了查询效率,尤其是针对一些复杂且耗时的查询。

(3)数据安全:

        通过授权可以对某个视图进行访问和修改,而不必直接访问底层表。在一些情况下,它可以提供对敏感数据的访问控制和安全性。

(4)数据统一性:

        视图可以将多个表的数据统一,提供更简单的查询界面。视图可以由多个表组成,故视图可以为应用程序提供数据的逻辑组织,方便维护和管理。此外,对视图进行操作时,其对应的表的数据也会随之改变,保证了数据的一致性。

创建视图

create or replace view 视图名字 as +查询命令
例如
create or replace view 房屋地址 as select 地址 from 房屋

查询视图:

Select * from 视图名字
例如:
Select * from 房屋地址
 查询结果:

数据库-MySQL 实战项目——房屋租赁管理系统数据库设计与实现(附源码)_第2张图片

查看视图的表结构:

DESC 视图名字

例如

DESC 房屋地址

删除视图:

Drop view 视图名字

八、答疑解惑

        代码有问题或需要其他的查询语句,都可以随时评论留言或联系博主QQ。

        还多请各位小伙伴多多点赞支持,你们的支持是我最大的动力。

博主QQ:1196094293

谢谢各位的支持~~

你可能感兴趣的:(MySQL数据库,数据库)