数据库SQL SERVER,我现在有一个房屋租赁管理系统。题目内容是:实现房屋户型、房屋信息、房东信息管理; 实现租房客户信息管理; 实现房屋的出租、归还管理; 实现租房收费管理; 创建存储过程,统计各种户型的房屋的出租数量; 创建触发器,当房屋租出时自动修改该房屋的状态; 创建视图,查询当前所有房屋的房号、房东、状态信息。 需要代码
时间: 2024-04-21 14:28:52 浏览: 105
毕业设计,基于ASP+SqlServer开发的房屋租售信息管理系统,内含完整源代码,数据库,毕业论文
创建数据库和表
首先,我们需要创建一个名为“house_rental”的数据库,然后创建以下表:
-- 房屋户型信息表
CREATE TABLE house_type (
type_id INT PRIMARY KEY,
type_name VARCHAR(50) NOT NULL,
description VARCHAR(200)
)
-- 房东信息表
CREATE TABLE landlord (
landlord_id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
phone VARCHAR(20),
address VARCHAR(200)
)
-- 房屋信息表
CREATE TABLE house (
house_id INT PRIMARY KEY,
type_id INT NOT NULL,
landlord_id INT NOT NULL,
address VARCHAR(200) NOT NULL,
rent DECIMAL(10, 2) NOT NULL,
status INT NOT NULL,
description VARCHAR(200),
FOREIGN KEY (type_id) REFERENCES house_type(type_id),
FOREIGN KEY (landlord_id) REFERENCES landlord(landlord_id)
)
-- 租客信息表
CREATE TABLE tenant (
tenant_id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
phone VARCHAR(20),
address VARCHAR(200),
credit_score INT NOT NULL DEFAULT 100
)
-- 租房信息表
CREATE TABLE rent (
rent_id INT PRIMARY KEY,
house_id INT NOT NULL,
tenant_id INT NOT NULL,
rent_date DATE NOT NULL,
return_date DATE,
rent_fee DECIMAL(10, 2) NOT NULL,
description VARCHAR(200),
FOREIGN KEY (house_id) REFERENCES house(house_id),
FOREIGN KEY (tenant_id) REFERENCES tenant(tenant_id)
)
创建存储过程
-- 统计各种户型的房屋的出租数量
CREATE PROCEDURE sp_count_rent_by_type
AS
BEGIN
SELECT h.type_id, ht.type_name, COUNT(*) AS rent_count
FROM rent r
JOIN house h ON r.house_id = h.house_id
JOIN house_type ht ON h.type_id = ht.type_id
GROUP BY h.type_id, ht.type_name
END
创建触发器
-- 当房屋租出时自动修改该房屋的状态
CREATE TRIGGER tr_update_house_status_on_rent
ON rent
AFTER INSERT
AS
BEGIN
UPDATE house
SET status = 1
WHERE house_id IN (SELECT house_id FROM inserted)
END
创建视图
-- 查询当前所有房屋的房号、房东、状态信息
CREATE VIEW vw_house_info
AS
SELECT h.house_id, l.name AS landlord, h.status
FROM house h
JOIN landlord l ON h.landlord_id = l.landlord_id
阅读全文