本文寫于數(shù)據(jù)庫課程設(shè)計結(jié)課后,總結(jié)了完整的數(shù)據(jù)庫設(shè)計流程以供參考學(xué)習(xí)。
一、環(huán)境配置
- mysql版本:8.0.29 下載鏈接
- IDEA版本:ideaIU 2022.1.1
- Tomcat版本:apache-tomcat-9.0.63
二、數(shù)據(jù)庫設(shè)計
1.系統(tǒng)說明書
(1)系統(tǒng)要求
某房屋租賃公司欲建立一個房屋租賃服務(wù)系統(tǒng),統(tǒng)一管理房主和租賃者信息,以便快速地提供租賃服務(wù)。該系統(tǒng)具有以下功能:
- 登記房主信息。對于每名房主,系統(tǒng)需登記其姓名、住址和聯(lián)系電話。
- 登記房屋信息。所有在系統(tǒng)中登記的房屋都有一個唯一的識別號(對于新增加的房屋,系統(tǒng)會自動為其分配一個識別號)。除此之外,還需登記房屋的地址、房型(如平房、帶陽臺的樓房、獨立式住宅等)、最多能容納的房客數(shù)、租金及房屋狀態(tài)(待租賃、已出租)。一名房主可以在系統(tǒng)中登記多個待租賃的房屋。
- 登記租賃者信息。所有想通過該系統(tǒng)租賃房屋的租賃者,必須事先在系統(tǒng)中登記個人信息,包括:姓名、住址、電話號碼、身份證編號、性別。
- 租賃房屋。已經(jīng)在系統(tǒng)中登記的租賃者,可以得到一分系統(tǒng)提供的待租賃房屋列表。一旦租賃者從中找到合適的房屋,就可以提出看房請求。系統(tǒng)會安排租賃者與房主見面。對于每次看房,系統(tǒng)會生成一條看房記錄。
- 收取手續(xù)費。每成功一次租賃服務(wù),系統(tǒng)根據(jù)租賃價格按比例生成費用清單。
- 變更房屋狀態(tài)。當(dāng)租賃者與房主達(dá)成租房或退房協(xié)議后,房主向系統(tǒng)提交變更房屋狀態(tài)請求。
- 用戶論壇。租賃者在論壇上尋找合租對象、與房主進(jìn)行交流。
- 創(chuàng)建視圖查詢當(dāng)前空閑的房屋的識別號、地址、房型、最多能容納的房客數(shù)、租金、房主身份證號、房主姓名、房主聯(lián)系電話。
- 建立數(shù)據(jù)庫相關(guān)表之間的參照完整性約束。
(2)E-R圖
(3)數(shù)據(jù)流圖
(4)數(shù)據(jù)結(jié)構(gòu)
1、Owner_users(房主用戶)數(shù)據(jù)結(jié)構(gòu):
House_owner=房主用戶編號+用戶名稱+密碼+真實姓名+住址+聯(lián)系電話
2、Tenant_users(租賃者用戶)數(shù)據(jù)結(jié)構(gòu):
Tenant_users=租賃者用戶編號+用戶名稱+密碼+真實姓名+住址+聯(lián)系電話+性別
3、House(房屋)數(shù)據(jù)結(jié)構(gòu):
House=識別號+地址+房型+容量+租金+房屋狀態(tài)+房主用戶編號
4、Record(看房記錄)數(shù)據(jù)結(jié)構(gòu):
Record=看房記錄編號+租賃者用戶編號+房屋識別號
5、Charge(收費記錄)數(shù)據(jù)結(jié)構(gòu):
Charge=收費記錄編號+金額+記錄編號
6、Message(留言)數(shù)據(jù)結(jié)構(gòu):
Message=留言編號+留言內(nèi)容+留言時間+房主用戶編號+租賃者用戶編號文章來源:http://www.zghlxwxcb.cn/news/detail-453147.html
(5)關(guān)系模式
根據(jù)E-R圖向關(guān)系模型的轉(zhuǎn)換原則,房屋租賃管理系統(tǒng)的E-R圖可以轉(zhuǎn)換為下列關(guān)系模式:文章來源地址http://www.zghlxwxcb.cn/news/detail-453147.html
- 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,外碼OID
- Record(RID,TID,HID),主碼RID,外碼TID,HID
- Charge(CID,amount,RID),主碼CID,外碼RID
- Message(MID,content,createDate,OID,TID),主碼MID,外碼OID,TID
2.數(shù)據(jù)庫實施
(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,OTelephone
FROM House,Owner_users
WHERE 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.TID
FROM House,Tenant_users,Record,Owner_users
WHERE 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)
AS
SELECT CID,TID,House.HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephone,amount
FROM House,Charge,Owner_users,Record
WHERE Charge.RID = Record.RID AND Record.HID = House.HID AND Owner_users.OID = House.OID;
到了這里,關(guān)于【數(shù)據(jù)庫設(shè)計】mysql+jsp實現(xiàn)房屋租賃管理系統(tǒng)(數(shù)據(jù)庫部分)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!