您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页数据库房屋销售管理系统

数据库房屋销售管理系统

来源:意榕旅游网
精品文档

数据库课程设计

房屋销售管理系统

姓 名:胡玖龙 学 号:201320070142 学 院:信息工程学院 专 业:计算机科学与技术 班 级:1320701 指导教师:李荣

2015年 1 月 14 日

1欢迎下载

精品文档

一、课程设计的目的和意义

《数据库原理及应用课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 要求:

通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。

二、设计正文 1.需求分析

1.1基本功能需求

客户购买或预定房屋,房屋销售人员根据用户的需求为用户办理相关手续。购销管理包含以下几方面的信息。

① 客户基本信息

客户在购买或预定房屋的时候,每位用户都有唯一的编号,客户的基本信息包括姓名、性别、年龄、联系方式、身份证号。

② 员工基本信息

每位员工在入职的时候有唯一的员工号,根据分工的不同,还有工作部门及职位这个属性。当然还有姓名、性别、联系方式、年龄、身份证号这些基本属性。

③ 房屋基本信息

每个房屋有唯一的房屋编号,基本信息包含房屋的面积、户型、小区、栋、号、价格和状态,状态分为“待售”、“已预订”和“已售出”。

④ 预定房屋信息

客户可以进行房屋的预定,预定包括预定流水号,客户编号,员工号,房屋编号,预付金额,未付金额,预定时间。

⑤ 购买的基本信息

客户可以购买房屋,购买包括购买流水号,客户编号,员工号,房屋编号,付款金额,购买时间。付款金额一般等于房屋价格。

2欢迎下载

精品文档

1.2用户对系统的要求

1.2.1房屋销售管理人员 ① 信息要求

房屋销售管理人员能查询上面提到的客户、销售人员、房屋的所有相关信息,包括预定房屋的基本信息,购买房屋的基本信息。以利于对整个销售楼盘的全面管理。

② 处理要求

当客户的信息发生变化时,房屋销售管理人员能对其进行修改。比如,客户更换手机号,或其他变更,能修改客户的信息。

当房屋的信息放生变化时,房屋销售管理人员能对其进行修改。比如,房屋降价,房屋销售管理人员能对价格进行修改。

当销售人员的信息放生变化时,如升职,房屋销售管理人员能对其进行修改。 ③ 安全性与完整性要求 安全性要求

1.系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;

2.系统应对不同的数据设置不同的访问级别,访问用户可查询和处理数据的类别和内容; 3.系统应对不同用户设置不同的权限,区分不同的用户,如区分房屋销售人员和房屋销售管理人员。 完整性要求

1.各种信息记录的完整性,信息记录内容不能为空; 2.各种数据间相互的联系的正确性; 3.相同的数据在不同记录中的一致性。

1.2.2房屋销售人员 ① 信息要求

本楼盘的房屋销售人员能所有楼盘的信息,能查询“待售”状态的房屋信息,能查询客户的基本信息、修改客户的信息。能查询自己的销售记录。能够进行预定、购买操作。

② 处理要求

当客户的信息发生变化时,房屋销售人员能对其进行修改。 客户购买/预定房屋时,销售人员能添加预定/购买记录。

3欢迎下载

精品文档

1.2.3系统数据处理 ① 状态更改

当客户预定房屋时,销售人员添加预定记录后,系统能自动将预定房屋的状态从“待售”修改为“已预订”。

当客户购买房屋时,销售人员添加购买记录后,系统能自动将购买房屋的状态从“待售”或“已预订”修改为“已售出”。 ② 数据计算

当客户预定房屋时,销售人员添加记录后,系统能自动根据预付金额和房屋价格计算出未付金额。

2. E-R图及关系模式:

2.1 E-R图:

根据需求分析,画出系统E-R图:

4欢迎下载

精品文档

2.2关系模式:

将E-R图转换为关系模式,有下划线的为主键或外键: 客户(客户编号,姓名,性别,身份证号,联系电话) 员工(员工号,姓名,性别,职位,身份证号,联系电话)

房屋(房屋编号,户型,面积,价格,栋,单元,号,房屋状态) 预定(流水号,客户编号,员工号,房屋编号,预付金额,预定时间) 购买(流水号,客户编号,员工号,房屋编号,购买金额,购买时间)

3.具体实现

3.1建立数据库

create database 房屋销售管理 on

( name=house_data, filename='D:\\house.mdf', size=10, maxsize=50, filegrowth=5

) log on ( name=house_log,

filename='D:\\house.ldf', size=5, maxsize=25, filegrowth=5

)

建立一个名为 房屋销售管理 的数据库

5欢迎下载。

精品文档

3.2创建各实体表及关系表

客户Customer: 属性 客户编号 姓名 性别 年龄 联系方式 身份证号 create table Customer ( )

CNo char(20) constraint C_prim primary key, CName char(10) not null,

CSex char(4) constraint Sex not null check(CSex='男' or CSex='女'), CAge int constraint C_Age not null check (CAge>0), CTel char(20) not null,

CId char(18) constraint LEN_CID check(len(CId)=18)

属性名 CNo CName CSex CAge CTel CId 类型 char char char int char char 长度 20 10 4 20 18 约束 主键 非空 ‘男’或‘女’ 大于零 非空 18位数字

员工Staff: 属性 员工号 姓名 性别 年龄 部门 职位 联系方式 身份证号 create table Staff ( )

SNo char(20) constraint S_prim primary key, SName char(10) not null,

SSex char(4) constraint Sex not null check(SSex='男' or SSex='女'), SAge int constraint S_Age not null check (SAge>0), SDep char(20) not null, SPost char(20) not null, STel char(20) not null,

SId char(18) constraint LEN_SID check(len(SId)=18)

属性名 SNo SName SSex SAge SDep SPost STel SId 类型 char char char int char char char char 长度 20 10 4 20 20 20 18 约束 主键 非空 ‘男’或‘女’ 大于零 非空 非空 非空 18位数字 房屋House: 属性 属性名 类型 长度 约束 。

6欢迎下载

精品文档

房屋编号 小区 栋 号 户型 面积 房屋状态 价格 create table House ( )

HNo HA HB HC HType HSize HState HPrice char char char char char int char float 20 20 10 10 20 20 主键 非空 非空 非空 非空 大于零 ‘待售'或‘已预订’或‘已售出’ 大于零 HNo char(20) constraint H_prim primary key, HA char(20) not null, HB char(10) not null, HC char(10) not null, HType char(20) not null,

HSize int constraint H_Size not null check(HSize>0),

HState char(20) constraint H_State not null check(HState='待售' or HState='已预订' or HState='Hprice float constraint H_Price not null check(HPrice>0)

已售出') default '待售',

预定Reserve: 属性 预定流水号 属性名 RNo 类型 char 长度 约束 主键 20 客户编号 CNo char 20 姓名 SName char 10 房屋编号 HNo char 20 预付金额 RMoney float 未付金额 RRest float 预定日期 RDate char 10 其中未付金额由存储过程根据预付金额和房屋价格自动计算填入 create table Reserve (

RNo char(20) constraint R_prim primary key,

非空 非空 外键 大于零 大于或等于零 非空 CNo char(20) constraint R_C_prim foreign key references Customer(CNo), SNo char(20) constraint R_S_prim foreign key references Staff(SNo), HNo char(20) constraint R_H_prim foreign key references House(HNo), RMoney float constraint R_Money not null check(RMoney>0),

RRest float constraint R_Rest not null check(RRest>=0) default 0, Rdate char(10) not null )

购买Buy: 属性 购买流水号 客户编号 属性名 BNo CNo 类型 char char 长度 20 20 约束 主键 非空 。

7欢迎下载

精品文档

姓名 房屋编号 购买金额 购买日期 create table Buy ( )

SName HNo BMoney BData char char float char 10 20 10 非空 外键 非空 非空 BNo char(20) constraint B_prim primary key,

SNo char(20) constraint B_S_prim foreign key references Staff(SNo), HNo char(20) constraint B_H_prim foreign key references House(HNo), BMoney float constraint B_Money not null check(BMoney>=0) default 0, Bdate char(10) not null

CNo char(20) constraint B_C_prim foreign key references Customer(CNo),

3.3创建视图:

所有客户信息视图(客户编号,名字,性别,年龄,联系方式,身份证号)

create view CustomerView(CNo,CName,CSex,CAge ,CTel,CId) as

select CNo,CName,CSex,Cage,CTel,CId FROM Customer

所有员工信息视图(员工号,名字,性别,年龄,部门,职位,联系方式,身份证号)

create view StaffView(SNo,SName,SSex,SAge,SDep,SPost,STel,SId) as

select SNo,SName,SSex,SAge,SDep,SPost,STel,SId

8欢迎下载

精品文档

from Staff

待售房屋视图(房屋编号,小区,栋,号,户型,面积,价格)

create view ForSaleHouse (HNo,HA,HB,HC,HType,HSize,HPrice) as

select HNo,HA,HB,HC,HType,HSize,HPrice from House

where HState='待售'

预定房屋信息视图(预定流水号,客户编号,客户名字,客户联系方式,员工号,员工名字,员工联系方式,房屋编号,小区,栋,号,户型,面积,价格,预定金额,未付金额,预定时间)

create view ReserveView(RNo,CNo,CName,CTel,SNo,SName,STel,HNo,HA,HB,

HC,HType,HSize,HPrice,RMoney,RRest,Rdate)

as

select RNo,Reserve.CNo,CName,CTel,Reserve.SNo,SName,STel,Reserve.HNo,HA,HB,HC,

HType,HSize,HPrice,RMoney,RRest,Rdate

from Reserve,Customer,Staff,House

where Reserve.CNo=Customer.CNo and Reserve.SNo=Staff.SNo and Reserve.HNo=House.HNo

9欢迎下载

精品文档

购买房屋信息视图(购买流水号,客户编号,客户名字,客户联系方式,员工号,员工名字,员工联系方式,房屋编号,小区,栋,号,户型,面积,价格,购买金额,购买时间)

Bdate) as

select BNo,Buy.CNo,CName,CTel,Buy.SNo,SName,STel,Buy.HNo,HA,HB,HC,HType,HSize,HPrice,BMoney,Bdate from Buy,Customer,Staff,House

where Buy.CNo=Customer.CNo and Buy.SNo=Staff.SNo and Buy.HNo=House.HNo

create view BuyView(BNo,CNo,CName,CTel,SNo,SName,STel,HNo,HA,HB,HC,HType,HSize,HPrice,BMoney,

3.4存储过程:

预定房屋:

10欢迎下载

精品文档

create procedure ReserveHouse ( ) as

if ((select House.HState from House where House.HNo=@HNo)='待售') begin end else begin end

print'该房屋已预定或已售出'

insert into Reserve(RNo,CNo,SNo,HNo,RMoney,Rdate) update House

set HState='已预定' from House

where House.HNo=@HNo update Reserve

@RNo char(20), @CNo char(20), @SNo char(20), @HNo char(20), @RMoney float, @RDate char(10)

values(@RNo,@CNo,@SNo,@HNo,@RMoney,@RDate)

set RRest=Hprice-RMoney from House,Reserve

where RNo=@RNo and House.HNo=@HNo

功能:根据HNo判断房屋状态是不是‘待售’状态,若是,则在预定表中插入信息;否则,则提示“该房屋已预定或已售出”,并放弃插入操作。

购买房屋:

create procedure BuyHouse ( ) as

if ((select House.HState from House where House.HNo=@HNo)!='已售出') insert into Buy(BNo,CNo,SNo,HNo ,Bdate) values(@BNo,@CNo,@SNo,@HNo,@BDate) update House set HState='已售出' begin

@BNo char(20), @CNo char(20), @SNo char(20), @HNo char(20), @BDate char(10)

11欢迎下载

精品文档

end end

from House

where House.HNo=@HNo delete from Reserve where Reserve.HNo=@HNo else

print'该房屋已售出'

begin

功能:根据HNo判断房屋状态是不是‘已售出’状态,若为否,则在购买表中插入信息,并在预定表中删除对应信息;否则,则提示“该房屋已售出”,并放弃插入操作。

插入客户信息:

create procedure InsertCustomer ( ) as

insert into Customer values(@CNo,@CName,@CSex,@CAge,@CTel,@CId) 功能:在客户表中插入新的客户信息。

@CNo char(20), @CName char(10), @CSex char(4), @CAge int, @CTel char(20), @CId char(18)='无'

插入员工信息:

create procedure InsertStaff ( ) as

insert into Staff values(@SNo,@SName,@SSex,@SAge,@SDep,@SPost,@STel,@SId) 功能:在员工表中插入新的员工信息。

@SNo char(20), @SName char(10), @SSex char(4), @SAge int, @SDep char(20), @SPost char(20), @STel char(20), @SId char(18)

插入房屋信息:

create procedure InsertHouse (

@HNo char(20),

12欢迎下载

精品文档

@HA char(20), @HB char(10), @HC char(10), @HType char(20), @HSize int, @HState char(20), @Hprice float

) as

insert into House values(@HNo,@HA,@HB,@HC,@HType,@HSize,@HState,@HPrice) 功能:在房屋表中插入新的房屋信息。

3.5触发器:

触发器1:

create trigger NewReserveHouse on Reserve instead of insert as

if not exists (

select * from inserted where CNo in (select CNo from Customer) ) print '客户表中没有该客户信息,拒绝插入!' rollback transaction

功能:保证在预定表中插入新记录时,客户信息必须已经存在于客户表中。

触发器2:

create trigger NewBuyHouse on Buy instead of insert as

if not exists (

select * from inserted where CNo in (select CNo from Customer) ) print '客户表中没有该客户信息,拒绝插入!' rollback transaction

功能:保证在购买表中插入新记录时,客户信息必须已经存在于客户表中。

触发器3:

13欢迎下载。

精品文档

create trigger DelR on Reserve after delete as

if ((select HState from House where House.HNo in (select HNo from deleted) )='已预定') begin

delete from Customer

where Customer.CNo in (select CNo from deleted) update House set HState='待售'

where House.HNo in (select HNo from deleted) end

功能:删除预定表中某一个预定记录时,如果是因为客服付清未付款,购买了房屋,则只进行原操作;如果是因为客户取消预定,则同时删除客户表中此客户,并将此房屋状态重新改为‘待售’。

触发器4:

create trigger DelB on Buy after delete as

begin

delete from Customer

where Customer.CNo in (select CNo from deleted) update House set HState='待售'

where House.HNo in (select HNo from deleted) end

功能:删除购买表中某一个购买记录时,同时删除客户表中此客户, 并将此房屋状态重新改为‘待售’。

三.实例演示: 添加数据:

14欢迎下载

精品文档

用InsertCustomer存储过程在Customer表填入数据:

用InsertStaff存储过程在Staff表填入数据:

用InsertHouse存储过程在InsertHouse表填入数据:

15欢迎下载

精品文档

预定和购买房屋:

用ReserveHouse存储过程添加预定房屋信息:

(输入参数中没有未付金额RRest,RRest由存储过程自动计算填入) 预定H0002和H0005号房屋

16欢迎下载

精品文档

用BuyHouse存储过程添加购买房屋信息: 购买H0007和H0009号房屋

用ReserveView视图和BuyView视图查看所有预定和购买房屋信息:

删除购买信息后自动将房屋状态重新修改为“待售”

17欢迎下载

精品文档

删除编号为B0002的购买记录,触发器自动将编号为H0009的房屋状态变更为“待售”。删除预定记录同此。

当添加新的预定记录时,若客户信息不存在于客户表中,则输出提示信息,并结束操作。插入购买记录同此。

18欢迎下载

精品文档

四.课程设计总结或结论

在完成课程设计的过程中,我明白了很多以前不明白的问题,特别是对存储过程和触发器的应用有了更深的了解。在课堂上学到的理论知识,也在实践中得到复习和巩固,并使我对数据库的理解更一步加深了,也为以后积累了宝贵的经验。从完全不知道从哪里下手,到一步步修改,一步步完善,到最终完成,中间经历了很多困难,查阅了很多资料,最终总算是完成了。但也在设计的过程中,我明白我掌握的知识还远远不够,就这一次设计房屋销售管理系统而言,尽管实现了大部分功能,但是还是有很多问题,并且我的课程设计还远远没有达到能投入实际应用的地步,没有界面,各种功能也不完美。但我相信,我在不断的进步,有了这一次积累,以后我会做的更好。

欢迎下载。

19精品文档

欢迎您的下载, 资料仅供参考!

打造全网一站式需求

20欢迎下载。

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务