数据库房屋销售管理系统
数据库课程设计房屋销售管理系统
姓名:胡玖龙
学号:201320070142
学院:信息工程学院
专业:计算机科学与技术
班级:1320701
指导教师:李荣
2015年 1 月14 日
一、课程设计的目的和意义
《数据库原理及应用课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
要求:
通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。
二、设计正文
1.需求分析
1.1基本功能需求
客户购买或预定房屋,房屋销售人员根据用户的需求为用户办理相关手续。购销管理包含以下几方面的信息。
①客户基本信息
客户在购买或预定房屋的时候,每位用户都有唯一的编号,客户的基本信息包括姓名、性别、年龄、联系方式、身份证号。
②员工基本信息
每位员工在入职的时候有唯一的员工号,根据分工的不同,还有工作部门及职位这个属性。当然还有姓名、性别、联系方式、年龄、身份证号这些基本属性。
③房屋基本信息
每个房屋有唯一的房屋编号,基本信息包含房屋的面积、户型、小区、栋、号、价格和状态,状态分为“待售”、“已预订”和“已售出”。
④预定房屋信息
客户可以进行房屋的预定,预定包括预定流水号,客户编号,员工号,房屋编号,预付金额,未付金额,预定时间。
⑤购买的基本信息
客户可以购买房屋,购买包括购买流水号,客户编号,员工号,房屋编号,付款金额,购买时间。付款金额一般等于房屋价格。
1.2用户对系统的要求
1.2.1房屋销售管理人员
①信息要求
房屋销售管理人员能查询上面提到的客户、销售人员、房屋的所有相关信息,包括预定房屋的基本信息,购买房屋的基本信息。以利于对整个销售楼盘的全面管理。
②处理要求
当客户的信息发生变化时,房屋销售管理人员能对其进行修改。比如,客户更换手机号,或其他变更,能修改客户的信息。
当房屋的信息放生变化时,房屋销售管理人员能对其进行修改。比如,房屋降价,房屋销售管理人员能对价格进行修改。
当销售人员的信息放生变化时,如升职,房屋销售管理人员能对其进行修改。
③安全性与完整性要求
安全性要求
1.系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份
不被盗用;
2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
3.系统应对不同用户设置不同的权限,区分不同的用户,如区分房屋销售人员和房屋销售管理人员。
完整性要求
1.各种信息记录的完整性,信息记录内容不能为空;
2.各种数据间相互的联系的正确性;
3.相同的数据在不同记录中的一致性。
1.2.2房屋销售人员
①信息要求
本楼盘的房屋销售人员能所有楼盘的信息,能查询“待售”状态的房屋信息,能查询客户的基本信息、修改客户的信息。能查询自己的销售记录。能够进行预定、购买操作。
②处理要求
当客户的信息发生变化时,房屋销售人员能对其进行修改。
客户购买/预定房屋时,销售人员能添加预定/购买记录。
1.2.3系统数据处理
①状态更改
当客户预定房屋时,销售人员添加预定记录后,系统能自动将预定房屋的状态从“待售”修改为“已预订”。
当客户购买房屋时,销售人员添加购买记录后,系统能自动将购买房屋的状态从“待售”或“已预订”修改为“已售出”。
②数据计算
当客户预定房屋时,销售人员添加记录后,系统能自动根据预付金额和房屋价格计算出未付金额。
2. E-R图及关系模式:
2.1 E-R图:
根据需求分析,画出系统E-R图:
.
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
)
建立一个名为房屋销售管理的数据库
.
3.2创建各实体表及关系表
客户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)
)
员工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)
)
. 房屋House:
create table House
( 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='已售出') default '待售',
Hprice float constraint H_Price not null check(HPrice>0)
)
预定Reserve:
其中未付金额由存储过程根据预付金额和房屋价格自动计算填入
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 )
.
属性属性名类型长度约束
购买流水号BNo char 20 主键
客户编号CNo char 20 非空
姓名SName char 10 非空
房屋编号HNo char 20 外键
购买金额BMoney float 非空
购买日期BData char 10 非空
( BNo char(20) constraint B_prim primary key,
CNo char(20) constraint B_C_prim foreign key references Customer(CNo), 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
)
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
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,https://www.360docs.net/doc/b318608257.html,o,CName,CTel,Reserve.SNo,SName,STel,Reserve.HNo,HA,HB,HC, HType,HSize,HPrice,RMoney,RRest,Rdate
from Reserve,Customer,Staff,House
where https://www.360docs.net/doc/b318608257.html,o=https://www.360docs.net/doc/b318608257.html,o and Reserve.SNo=Staff.SNo and Reserve.HNo=House.HNo
购买房屋信息视图(购买流水号,客户编号,客户名字,客户联系方式,员工号,员工名字,员工联系方
式,房屋编号,小区,栋,号,户型,面积,价格,购买金额,购买时间)
create view
BuyView(BNo,CNo,CName,CTel,SNo,SName,STel,HNo,HA,HB,HC,HType,HSize,HPrice,BMoney, Bdate)
as
select
BNo,https://www.360docs.net/doc/b318608257.html,o,CName,CTel,Buy.SNo,SName,STel,Buy.HNo,HA,HB,HC,HType,HSize,HPrice,BMo
ney,Bdate
from Buy,Customer,Staff,House
where https://www.360docs.net/doc/b318608257.html,o=https://www.360docs.net/doc/b318608257.html,o and Buy.SNo=Staff.SNo and Buy.HNo=House.HNo