一、前言
需求:
房屋租赁管理系统主要完成功能为:
- 房屋信息管理
- 出租者信息管理
- 求租者信息管理
- 房屋出租信息管理
- 系统管理(员工信息管理、绩效管理等)
备注:
1. 一个房屋有多个求租者。(一对多)
2. 一个房屋由多名员工销售,一个员工管理多个房屋。(多对多)
3. 一个员工负责多个求租者,一个求租者可选择多个员工。(多对多)
4. 一个出租者面向多个求租者,一个求租者可选择多个出租者。(多对多)
5. 一个求租者可发多条求租留言,一个出租者可发多条出租留言。(一对多)
其中:
房屋信息包含下列属性:地址,价格,房号,面积。
出租者包含下列属性:出租者身份证,出租者姓名,出租者性别,出租者电话号码,出租者年龄。
求租者包含下列属性:求租者身份证,求租者姓名,求租者性别,求租者电话号码,求租者年龄。
员工出租包含下列属性:员工编号,员工姓名,员工性别,员工电话号码,员工年龄。
留言包含属性:留言时间,留言内容,留言编号。
关于出租房屋要描述出租日期和出租金额
关于员工绩效要描述售房数量
所需环境
- MySQL可视化工具:navicat;
- 数据库:MySql 5.7/8.0等版本均可;
二、E-R图
三、关系模式
房屋(房号,地址,价格,面积)
员工(员工编号,员工姓名,员工性别,员工年龄,员工电话)
求租者(求租者身份证,求租者姓名,求租者性别,求租者电话,求租者年龄)
留言(留言编号,留言内容,留言时间,求租者身份证,出租者身份证)
出租者(出租者身份证,出租者姓名,出租者性别,出租者电话,出租者年龄)
绩效(员工编号,房号,售房数量)
房屋出租(员工编号,求租者身份证,出租日期,出租金额)
四、数据表的设计
表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 房屋地址
查询结果:
查看视图的表结构:
DESC 视图名字
例如:
DESC 房屋地址
删除视图:
Drop view 视图名字
八、答疑解惑
代码有问题或需要其他的查询语句,都可以随时评论留言或联系博主QQ。
还多请各位小伙伴多多点赞支持,你们的支持是我最大的动力。
博主QQ:1196094293
谢谢各位的支持~~