数据库房屋销售管理方案系统.docx

上传人:b****5 文档编号:7736778 上传时间:2023-01-26 格式:DOCX 页数:20 大小:1.71MB
下载 相关 举报
数据库房屋销售管理方案系统.docx_第1页
第1页 / 共20页
数据库房屋销售管理方案系统.docx_第2页
第2页 / 共20页
数据库房屋销售管理方案系统.docx_第3页
第3页 / 共20页
数据库房屋销售管理方案系统.docx_第4页
第4页 / 共20页
数据库房屋销售管理方案系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据库房屋销售管理方案系统.docx

《数据库房屋销售管理方案系统.docx》由会员分享,可在线阅读,更多相关《数据库房屋销售管理方案系统.docx(20页珍藏版)》请在冰豆网上搜索。

数据库房屋销售管理方案系统.docx

数据库房屋销售管理方案系统

数据库课程设计

房屋销售管理系统

 

 

姓名:

胡玖龙

学号:

201320070142

学院:

信息工程学院

专业:

计算机科学与技术

班级:

1320701

指导教师:

李荣

 

2015年1月14日

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

《数据库原理及应用课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。

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

要求:

通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。

熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。

二、设计正文

1.需求分析

1.1基本功能需求

客户购买或预定房屋,房屋销售人员根据用户的需求为用户办理相关手续。

购销管理包含以下几方面的信息。

1客户基本信息

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

2员工基本信息

每位员工在入职的时候有唯一的员工号,根据分工的不同,还有工作部门及职位这个属性。

当然还有姓名、性别、联系方式、年龄、身份证号这些基本属性。

3房屋基本信息

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

4预定房屋信息

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

5购买的基本信息

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

付款金额一般等于房屋价格。

1.2用户对系统的要求

1.2.1房屋销售管理人员

①信息要求

房屋销售管理人员能查询上面提到的客户、销售人员、房屋的所有相关信息,包括预定房屋的基本信息,购买房屋的基本信息。

以利于对整个销售楼盘的全面管理。

②处理要求

当客户的信息发生变化时,房屋销售管理人员能对其进行修改。

比如,客户更换手机号,或其他变更,能修改客户的信息。

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

比如,房屋降价,房屋销售管理人员能对价格进行修改。

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

③安全性与完整性要求

安全性要求

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

2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;

3.系统应对不同用户设置不同的权限,区分不同的用户,如区分房屋销售人员和房屋销售管理人员。

完整性要求

1.各种信息记录的完整性,信息记录内容不能为空;

2.各种数据间相互的联系的正确性;

3.相同的数据在不同记录中的一致性。

1.2.2房屋销售人员

1信息要求

本楼盘的房屋销售人员能所有楼盘的信息,能查询“待售”状态的房屋信息,能查询客户的基本信息、修改客户的信息。

能查询自己的销售记录。

能够进行预定、购买操作。

2处理要求

当客户的信息发生变化时,房屋销售人员能对其进行修改。

客户购买/预定房屋时,销售人员能添加预定/购买记录。

 

1.2.3系统数据处理

1状态更改

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

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

2数据计算

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

 

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

2.1E-R图:

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

2.2关系模式:

将E-R图转换为关系模式,有下划线的为主键或外键:

客户(客户编号,姓名,性别,身份证号,联系电话)

员工(员工号,姓名,性别,职位,身份证号,联系电话)

房屋(房屋编号,户型,面积,价格,栋,单元,号,房屋状态)

预定(流水号,客户编号,员工号,房屋编号,预付金额,预定时间)

购买(流水号,客户编号,员工号,房屋编号,购买金额,购买时间)

 

3.具体实现

3.1建立数据库

createdatabase房屋销售管理

on

(name=house_data,

filename='D:

\house.mdf',

size=10,

maxsize=50,

filegrowth=5

logon

(name=house_log,

filename='D:

\house.ldf',

size=5,

maxsize=25,

filegrowth=5

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

3.2创建各实体表及关系表

客户Customer:

属性

属性名

类型

长度

约束

客户编号

CNo

char

20

主键

姓名

CName

char

10

非空

性别

CSex

char

4

‘男’或‘女’

年龄

CAge

int

 

大于零

联系方式

CTel

char

20

非空

身份证号

CId

char

18

18位数字

createtableCustomer

(CNochar(20)constraintC_primprimarykey,

CNamechar(10)notnull,

CSexchar(4)constraintSexnotnullcheck(CSex='男'orCSex='女'),

CAgeintconstraintC_Agenotnullcheck(CAge>0),

CTelchar(20)notnull,

CIdchar(18)constraintLEN_CIDcheck(len(CId)=18)

员工Staff:

属性

属性名

类型

长度

约束

员工号

SNo

char

20

主键

姓名

SName

char

10

非空

性别

SSex

char

4

‘男’或‘女’

年龄

SAge

int

 

大于零

部门

SDep

char

20

非空

职位

SPost

char

20

非空

联系方式

STel

char

20

非空

身份证号

SId

char

18

18位数字

createtableStaff

(SNochar(20)constraintS_primprimarykey,

SNamechar(10)notnull,

SSexchar(4)constraintSexnotnullcheck(SSex='男'orSSex='女'),

SAgeintconstraintS_Agenotnullcheck(SAge>0),

SDepchar(20)notnull,

SPostchar(20)notnull,

STelchar(20)notnull,

SIdchar(18)constraintLEN_SIDcheck(len(SId)=18)

房屋House:

属性

属性名

类型

长度

约束

房屋编号

HNo

char

20

主键

小区

HA

char

20

非空

HB

char

10

非空

HC

char

10

非空

户型

HType

char

20

非空

面积

HSize

int

 

大于零

房屋状态

HState

char

20

‘待售'或‘已预订’或‘已售出’

价格

HPrice

float

 

大于零

createtableHouse

(HNochar(20)constraintH_primprimarykey,

HAchar(20)notnull,

HBchar(10)notnull,

HCchar(10)notnull,

HTypechar(20)notnull,

HSizeintconstraintH_Sizenotnullcheck(HSize>0),

HStatechar(20)constraintH_Statenotnullcheck(HState='待售'orHState='已预订'orHState='已售出')default'待售',

HpricefloatconstraintH_Pricenotnullcheck(HPrice>0)

预定Reserve:

属性

属性名

类型

长度

约束

预定流水号

RNo

char

20

主键

客户编号

CNo

char

20

非空

姓名

SName

char

10

非空

房屋编号

HNo

char

20

外键

预付金额

RMoney

float

 

大于零

未付金额

RRest

float

 

大于或等于零

预定日期

RDate

char

10

非空

其中未付金额由存储过程根据预付金额和房屋价格自动计算填入

createtableReserve

(RNochar(20)constraintR_primprimarykey,

CNochar(20)constraintR_C_primforeignkeyreferencesCustomer(CNo),

SNochar(20)constraintR_S_primforeignkeyreferencesStaff(SNo),

HNochar(20)constraintR_H_primforeignkeyreferencesHouse(HNo),

RMoneyfloatconstraintR_Moneynotnullcheck(RMoney>0),

RRestfloatconstraintR_Restnotnullcheck(RRest>=0)default0,

Rdatechar(10)notnull)

购买Buy:

属性

属性名

类型

长度

约束

购买流水号

BNo

char

20

主键 

客户编号

CNo

char

20

非空 

姓名

SName

char

10

非空 

房屋编号

HNo

char

20

外键

购买金额

BMoney

float

 

非空 

购买日期

BData

char

10

非空 

createtableBuy

(BNochar(20)constraintB_primprimarykey,

CNochar(20)constraintB_C_primforeignkeyreferencesCustomer(CNo),

SNochar(20)constraintB_S_primforeignkeyreferencesStaff(SNo),

HNochar(20)constraintB_H_primforeignkeyreferencesHouse(HNo),

BMoneyfloatconstraintB_Moneynotnullcheck(BMoney>=0)default0,

Bdatechar(10)notnull

3.3创建视图:

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

createviewCustomerView(CNo,CName,CSex,CAge,CTel,CId)

as

selectCNo,CName,CSex,Cage,CTel,CId

FROMCustomer

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

createviewStaffView(SNo,SName,SSex,SAge,SDep,SPost,STel,SId)

as

selectSNo,SName,SSex,SAge,SDep,SPost,STel,SId

fromStaff

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

createviewForSaleHouse(HNo,HA,HB,HC,HType,HSize,HPrice)

as

selectHNo,HA,HB,HC,HType,HSize,HPrice

fromHouse

whereHState='待售'

 

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

createviewReserveView(RNo,CNo,CName,CTel,SNo,SName,STel,HNo,HA,HB,

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

as

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

HType,HSize,HPrice,RMoney,RRest,Rdate

fromReserve,Customer,Staff,House

whereReserve.CNo=Customer.CNoandReserve.SNo=Staff.SNoandReserve.HNo=House.HNo

 

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

createviewBuyView(BNo,CNo,CName,CTel,SNo,SName,STel,HNo,HA,HB,HC,HType,HSize,HPrice,BMoney,Bdate)

as

selectBNo,Buy.CNo,CName,CTel,Buy.SNo,SName,STel,Buy.HNo,HA,HB,HC,HType,HSize,HPrice,BMoney,Bdate

fromBuy,Customer,Staff,House

whereBuy.CNo=Customer.CNoandBuy.SNo=Staff.SNoandBuy.HNo=House.HNo

3.4存储过程:

预定房屋:

createprocedureReserveHouse

(@RNochar(20),

@CNochar(20),

@SNochar(20),

@HNochar(20),

@RMoneyfloat,

@RDatechar(10)

as

if((selectHouse.HStatefromHousewhereHouse.HNo=@HNo)='待售')

begin

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

updateHouse

setHState='已预定'

fromHouse

whereHouse.HNo=@HNo

updateReserve

setRRest=Hprice-RMoney

fromHouse,Reserve

whereRNo=@RNoandHouse.HNo=@HNo

end

else

begin

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

end

功能:

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

购买房屋:

createprocedureBuyHouse

(@BNochar(20),

@CNochar(20),

@SNochar(20),

@HNochar(20),

@BDatechar(10)

as

if((selectHouse.HStatefromHousewhereHouse.HNo=@HNo)!

='已售出')

begin

insertintoBuy(BNo,CNo,SNo,HNo,Bdate)values(@BNo,@CNo,@SNo,@HNo,@BDate)

updateHouse

setHState='已售出'

fromHouse

whereHouse.HNo=@HNo

deletefromReserve

whereReserve.HNo=@HNo

end

else

begin

print'该房屋已售出'

end

功能:

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

插入客户信息:

createprocedureInsertCustomer

(@CNochar(20),

@CNamechar(10),

@CSexchar(4),

@CAgeint,

@CTelchar(20),

@CIdchar(18)='无'

as

insertintoCustomervalues(@CNo,@CName,@CSex,@CAge,@CTel,@CId)

功能:

在客户表中插入新的客户信息。

插入员工信息:

createprocedureInsertStaff

(@SNochar(20),

@SNamechar(10),

@SSexchar(4),

@SAgeint,

@SDepchar(20),

@SPostchar(20),

@STelchar(20),

@SIdchar(18)

as

insertintoStaffvalues(@SNo,@SName,@SSex,@SAge,@SDep,@SPost,@STel,@SId)

功能:

在员工表中插入新的员工信息。

 

插入房屋信息:

createprocedureInsertHouse

(@HNochar(20),

@HAchar(20),

@HBchar(10),

@HCchar(10),

@HTypechar(20),

@HSizeint,

@HStatechar(20),

@Hpricefloat

as

insertintoHousevalues(@HNo,@HA,@HB,@HC,@HType,@HSize,@HState,@HPrice)

功能:

在房屋表中插入新的房屋信息。

3.5触发器:

触发器1:

createtriggerNewReserveHouseonReserve

insteadofinsert

as

ifnotexists

(select*frominsertedwhereCNoin(selectCNofromCustomer))

print'客户表中没有该客户信息,拒绝插入!

'

rollbacktransaction

功能:

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

 

触发器2:

createtriggerNewBuyHouseonBuy

insteadofinsert

as

ifnotexists

(select*frominsertedwhereCNoin(selectCNofromCustomer))

print'客户表中没有该客户信息,拒绝插入!

'

rollbacktransaction

功能:

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

 

触发器3:

createtriggerDelRonReserve

afterdelete

as

if((selectHStatefromHousewhereHouse.HNoin(selectHNofromdeleted))='已预定')

begin

deletefromCustomer

whereCustomer.CNoin(selectCNofromdeleted)

updateHouse

setHState='待售'

whereHouse.HNoin(selectHNofromdeleted)

end

功能:

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

触发器4:

createtriggerDelBonBuy

afterdelete

as

begin

deletefromCustomer

whereCustomer.CNoin(selectCNofromdeleted)

updateHouse

setHState='待售'

whereHouse.HNoin(selectHNofromdeleted)

end

 

功能:

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

 

三.实例演示:

添加数据:

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

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

 

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

预定和购买房屋:

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

(输入参数中没有未付金额RRest,RRest由存储过程自动计算填入)

预定H0002和H0005号房屋

用BuyHouse存储过程添加购买房屋信息:

购买H0007和H0009号房屋

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1