资源描述
房产销售管理信息系统的数据库设计
——天津大学数据库大作业
一、 系统需求分析
1.房产销售管理系统是用来管理房产信息,查询房产销售情况的数据库系统。
通过该系统可以实现的功能:查询公司旗下房产的基本信息,房产销售的情况,可以增加删除新开发的房产,也可以更改现有房产的信息,从而实现公司对房产销售的管理。
客户可以通过该系统现有房产信息。销售人员可以查看自己的基本情况,业绩情况和工作计划。
2.本系统的实体:房产、客户、销售人员、工作计划
3.该数据库主要进行以下数据处理:
简单查询:
A查询公司旗下房产的基本信息
B查询销售人员的业绩情况
C查询销售人员的工作计划
复杂查询:
A查询购买某一房产的客户信息
B查询某一工作人员销售某一类房产业绩情况
插入:
增添新上市的房产,新的销售人员,新的客户信息及其相关属性
修改:
系统管理员可以修改房产的基本信息和销售人员的工作计划
二、E-R图
出售房产总数
房产编号
房产
房产编号
房产类型
面积
价格
位置
销售人员
工作计划
客户
购买
销售
制定
客户编号
姓名
联系电话
联系地址
购房时间
所购房产
付款方式
工作计划编号
房产数量
计划时间
业绩状况
销售人员编号
制定时间
工作计划编号
销售人员编号
出售时间
房产编号
购买日期
客户编号
联系
销售人员编号
客户编号
联系人员编号
上市时间
销售人员编号
销售人员编号
姓名
部门
工作计划编号
工资
计划利润
客户编号
三、 关系模式
实体有四个:客户、房产、销售人员、工作计划,他们之间的关系转成
关系模式:
客户(客户编号,姓名,联系电话,联系地址,所购房产,购房时间,销售人员编号)
房产(房产编号,面积,房产类型,位置,上市时间,价格,付款方式,销售人员编号)
销售人员(销售人员编号,姓名,部门,工资,工作计划编号,出售房产总数)
工作计划(工作计划编号,房产数量,计划利润,计划时间,业绩状况)
制定(销售人员编号,工作计划编号,制定时间)
购买(客户编号,房产编号,购买日期)
销售(房产编号,客户编号,销售人员编号,销售时间)
联系(销售人员编号,客户编号)
四、 物理设计
客户表结构
字段名
类型
属性
客户编号
Char(10)
Primary key
姓名
Char(8)
Not null
联系电话
Char(12)
Not null
联系地址
Char(10)
所购房产
Char(30)
Check 约束,房产表中有的
购房时间
datetime
Not null
销售人员编号
Char(10)
Foreign key
房产表结构
字段名
类型
属性
房产编号
Char(10)
Primary key
面积
Char(10)
Not null
房产类型
Char(10)
Not null
位置
Char(30)
上市时间
datetime
Not null
价格
Char(10)
Not null
付款方式
Char(10)
销售人员编号
Char(10)
Foreign key
销售人员表结构
字段名
类型
属性
销售人员编号
Char(10)
Primary key
姓名
Char(8
Not null
部门
Char(10)
Not null
工资
Char(10)
Not null
工作计划编号
Char(10)
Foreign key
出售房产总数
Char(10)
Not null
工作计划表结构
字段名
类型
属性
工作计划编号
Char(10)
Primary key
房产数量
Char(10)
Not null
计划利润
Char(10)
Not null
计划时间
datetime
Not null
业绩状况
Char(10)
Check 约束,在0%~100%之间取值
制定关系表结构
字段名
类型
属性
销售人员编号
Char(10)
Not null
工作计划编号
Char(10)
Not null
制定时间
datetime
Not null
购买关系表结构
字段名
类型
属性
客户编号
Char(10)
Not null
房产编号
Char(10)
Not null
购买日期
datetime
Not null
销售关系表结构
字段名
类型
属性
房产编号
Char(10)
Not null
客户编号
Char(10)
Not null
销售人员编号
Char(10)
Not null
销售时间
datetime
Not null
联系关系表结构
字段名
类型
属性
销售人员编号
Char(10)
Not null
客户编号
Char(10)
Not null
五、 系统实现
1.数据库及基本表的建立
------数据库的建立
create database 房产销售管理
on
primary
(
name=房产销售管理,
filename='D:\房产销售管理系统.mdf',
size=10MB,maxsize=20MB,filegrowth=1MB
),
(
name=房产销售管理A,
filename='D:\房产销售管理系统.ndf',
size=10MB,maxsize=20MB,filegrowth=10%
)
log on
(
name=房产销售管理B,
filename='D:\房产销售管理系统.ldf',
size=10MB,maxsize=20MB,filegrowth=1MB
)
------基本表的建立
use 房产销售管理
create table 工作计划
(工作计划编号 Char(10) Primary key,
房产数量 Char(10) not null,
计划利润 Char(10) not null,
计划时间 datetime Not null,
业绩状况 Char(10) Not null)
create table 销售人员
(销售人员编号 Char(10) Primary key,
姓名 Char(8) Not null,
部门 Char(10) Not null,
工资 Char(10) Not null,
工作计划编号 Char(10) references 工作计划(工作计划编号),
出售房产总数 Char(10) Not null)
create table 房产
(房产编号 Char(10) Primary key,
面积 Char(10) Not null,
房产类型 Char(10) Not null,
位置 Char(30),
上市时间 datetime Not null,
价格 Char(10) Not null,
付款方式 Char(10),
销售人员编号 Char(10) references 销售人员(销售人员编号)
)
create table 客户
(
客户编号 Char(10) Primary key,
姓名 Char(8) Not null,
联系电话 Char(12) Not null,
联系地址 Char(10) ,
所购房产 Char(30) ,
购房时间 datetime Not null,
销售人员编号 Char(10) references 销售人员(销售人员编号)
)
create table 制定
(销售人员编号 Char(10) Not null,
工作计划编号 Char(10) Not null,
制定时间 datetime Not null)
create table 购买
(客户编号 Char(10) Not null,
房产编号 Char(10) Not null,
购买日期 datetime Not null)
create table 销售
(房产编号 Char(10) Not null,
客户编号 Char(10) Not null,
销售人员编号 Char(10) Not null,
销售时间 datetime Not null)
create table 联系
(销售人员编号 Char(10) Not null,
客户编号 Char(10) Not null)
2.创建视图和索引
---------创建视图
create view 客户视图
as
select 客户.客户编号,客户.姓名,客户.联系电话,客户.联系地址,客户.所购房产,
客户.购房时间,销售人员.销售人员编号,房产.房产编号,房产.面积,房产.房产类型,
房产.位置,房产.上市时间,房产.价格,房产.付款方式
from 客户join 销售人员on 客户.销售人员编号=销售人员.销售人员编号
join 房产on 客户.所购房产=房产.房产编号
create view 销售人员视图
as
select 销售人员.销售人员编号,销售人员.姓名,销售人员.部门,销售人员.工资,
销售人员.工作计划编号,销售人员.出售房产总数,工作计划.计划时间,
工作计划.房产数量,工作计划.计划利润,工作计划.业绩状况
from 销售人员join 工作计划on 销售人员.工作计划编号=工作计划.工作计划编号
------创建索引
create index 房产on 房产(房产编号)
create index 客户on 客户(客户编号)
create index 销售人员on 销售人员(销售人员编号)
3.创建存储过程
create procedure 房产信息@name char(10)
as
select *from 房产
where 房产.房产编号= @name
create procedure 销售人员出售房产总数@编号char(10)
as
select "total" = count(房产.房产编号)
from 房产join 销售人员on 房产.销售人员编号=销售人员.销售人员编号
where 销售人员.销售人员编号= @编号
create procedure 查询工作计划@worker char(10)
as
select *from 工作计划,销售人员
where 工作计划.工作计划编号=销售人员.工作计划编号and
销售人员.销售人员编号=@worker
-----------插入
create procedure 新房产@房产编号char(10),@面积Char(10),
@房产类型Char(10),@位置Char(30),@上市时间 datetime,@价格Char(10),
@付款方式Char(10),@销售人员编号Char(10)
as
insert into 房产values(@房产编号,@面积,@房产类型,@位置,@上市时间,@价格,
@付款方式,@销售人员编号)
-----修改
create procedure 改房价@newprice char(10),@number char(10)
as
update 价格
set 房产.价格= @newprice
where 房产.房产编号=@number
--------触发器
create trigger 新房产信息
on 房产
for insert,delete
as
select *from inserted
select*from deleted
7 / 7
展开阅读全文