客户资源管理系统数据库设计.docx

上传人:b****3 文档编号:24877365 上传时间:2023-06-02 格式:DOCX 页数:37 大小:784.48KB
下载 相关 举报
客户资源管理系统数据库设计.docx_第1页
第1页 / 共37页
客户资源管理系统数据库设计.docx_第2页
第2页 / 共37页
客户资源管理系统数据库设计.docx_第3页
第3页 / 共37页
客户资源管理系统数据库设计.docx_第4页
第4页 / 共37页
客户资源管理系统数据库设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

客户资源管理系统数据库设计.docx

《客户资源管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《客户资源管理系统数据库设计.docx(37页珍藏版)》请在冰豆网上搜索。

客户资源管理系统数据库设计.docx

客户资源管理系统数据库设计

客户资源管理系统数据库设计

所属课程名称数据库原理与应用

班级07计算机软件工程方向

团队成员张灵惠

吴欢斌

成绩

提交时间:

2009年12月25日

 

(一)、客户资源管理系统需求分析

1、调查了解学籍管理系统的初步需求

企业的发展离不开客户对企业的认知度、美誉度、忠诚度,为了提高客户满意度必须对客户资源进行科学有效的管理。

客户资源管理系统对客户信息(包括潜在的和已有的客户)进行有效管理和应用,并通过适当的步骤来构建和维护有价值的客户关系。

客户资源管理系统主要功能表

序号

功能名称

功能说明

1

客户信息管理

实现客户的增加、删除、修改和查询、打印,并提供客户分开查询、管理功能

2

市场活动管理

针对各部门的活动主题、内容、类型、客户及负责员工进行合理安排

3

客服管理

查看客户的服务请求,管理客服人员的服务内容、类型、处理等级以及客户的反馈信息和满意程度

4

日程提醒

对未来事件的主题、日期、内容、处理状态进行维护,以保证及时联系重要客户

5

数据管理

导入导出数据,数据备份与恢复

6

系统管理

包括代码管理、员工管理和账号管理

3、根据系统的初步需求,分析设计顶层数据流图

(1)、1层数据流图如下图所示:

(2)、2层数据流图如下图所示:

4、制定整理数据字典

(1)、分析数据流图,确定数据流的描述

在客户管理数据流图中,包含“客户资料”、“变更客户资料要求”、“删除客户资料要求”、“新增的客户信息”、“修改后的客户资料”等数据流。

◆数据流描述

数据流卡

编号:

F1

名称:

客户资料

来源:

客户信息

去向:

客户信息显示

数据结构:

客户编号、客户名称、客户等级、客户状态

说明:

某公司的全部客户资料

数据流卡

编号:

F2

名称:

变更客户资料要求

来源:

管理员输入

去向:

客户信息查询

数据结构:

客户编号、客户名称、客户等级、客户状态

说明:

某次要变动的客户资料要求

数据流卡

编号:

F3

名称:

删除客户资料要求

来源:

管理员输入

去向:

删除客户资料

数据结构:

客户资料

说明:

某次要删除的客户资料要求

数据流卡

编号:

F4

名称:

新增的客户信息

来源:

去向:

数据结构:

说明:

某次添加的新的客户信息

数据流卡

编号:

F7

名称:

修改后的客户资料

来源:

去向:

数据结构:

说明:

某次修改后的客户资料

(2)、分析数据流图,确定数据存储的描述

在客户管理数据流图中,包含“客户资料”等数据存储,描述其数据存储。

1数据存储:

客户资料

说明:

保存各个客户的资料信息

流入数据流:

新增的客户资料、修改后的客户资料

流出数据流:

客户资料显示

组成:

客户编号、客户姓名、客户等级

存取方式:

随机存取

(3)、分析数据流图,确定数据项的描述

◆数据项的定义:

数据项编号:

I01-01

数据项名称:

客户编号

别名:

客户编码

简述:

客户的顺序代号

类型:

数字

数据项编号:

I01-02

数据项名称:

客户姓名

别名:

客户名称

简述:

客户的称呼

类型:

文本

 

数据项编号:

I01-03

数据项名称:

所属行业

别名:

简述:

客户的行业

类型:

文本

 

数据项编号:

I01-04

数据项名称:

所在地区

别名:

简述:

客户的居住地

类型:

文本

 

数据项编号:

I01-05

数据项名称:

电话号码

别名:

简述:

客户的电话号码

类型:

数字

 

数据项编号:

I01-09

数据项名称:

客户等级

别名:

简述:

客户的重要性

类型:

文本

(4)、分析数据流图,确定处理过程的描述

在客户管理数据流图中,包含“客户信息查询”、“增加客户信息”、“修改客户信息”、“删除客户信息”、等处理过程,描述它们的处理流程。

1处理过程:

增加客户信息查询

说明:

录入一个客户的资料信息

输入:

客户编号、姓名

输出:

客户基本信息

处理:

在“客户信息”数据存储中增加一个客户的基本信息

2处理过程:

修改客户信息

说明:

录入一个客户的基本信息

输入:

客户编号、姓名

输出:

客户基本信息

处理:

在“客户基本信息”数据存储中修改一个客户的考试成绩

③处理过程:

客户信息查询

说明:

输入要查询的客户信息条件

输入:

管理人员

输出:

客户信息显示

处理:

输出某个客户的信息

④处理过程:

删除客户信息

说明:

删除某个客户的信息

输入:

客户编号、姓名

输出:

处理:

在“客户信息”数据存储中少了一个客户的信息

二、客户信息管理概念结构设计

①在客户资料管理中抽象实体,实体的码用下划线标出

★客户实体的属性为:

{客户编号、姓名、所属行业、电话、法人、经营范围、所在地区、客户等级、客户状态、传真}

★管理员实体的属性为:

{管理员编号、管理员姓名、密码}

★员工实体的属性为:

{员工编号、部门编号、员工名称、密码}

★部门实体的属性为:

{部门编号、部门名称}

★客服信息实体的属性为:

{服务编号、客户名称、联系人、受理方式、处理状态、处理部门编号、服务内容、处理日期、客户满意程度、客户反馈信息}

★市场活动信息实体的属性为:

{活动编号、活动主题、负责员工编号、客户编号、部门编号、联系时间、活动时间、活动类型、活动方式、活动内容}

(3)、确定实体间的关系,设计E-R图

为了简化设计,使用以下约束:

★一个管理员只管理一个部门,一个管理员可以管理多个多个员工

★一个客户只受一个员工服务,一个员工可以服务多个客户

★一个员工只能属于一个部门,一个部门可以有多个员工

①在客户管理局部应用

根据客户管理中的客户管理的局部应用,确定各实体间的联系

★一个客户必须被一个员工服务,而一个员工可以为多个客户服务,因此客户与员工的所在联系为n:

1联系;

★一个员工必须隶属于一个部门,一个部门包含多个员工,因此部门与员工的隶属联系是1:

n联系;

★根据约定一个部门只有一个管理人员,一个管理人员只担任一个部门的经理,因此部门与经理的管理联系时1:

1联系

(4)、合并分E-R图,解决冲突,消除冗余,设计基本E-R图,如下图所示:

(三)逻辑设计和物理设计

(6)、使用PowerDesigner设计CDM

 

由CDM生成PDM:

(四)数据库实施

各个表如下图所示:

◆员工表:

altertablecsinfo

dropconstraintFK_CSINFO_DISPOSE_WORKER

go

altertablemarketactive

dropconstraintFK_MARKETAC_WORK_WORKER

go

altertableserver

dropconstraintFK_SERVER_SERVER_WORKER

go

altertableworker

dropconstraintFK_WORKER_MANAGE_MANAGER

go

altertableworker

dropconstraintFK_WORKER_SUBJIECTI_DEPARMEN

go

ifexists(select1

fromsysindexes

whereid=object_id('worker')

andname='manage_FK'

andindid>0

andindid<255)

dropindexworker.manage_FK

go

ifexists(select1

fromsysindexes

whereid=object_id('worker')

andname='subjiection_FK'

andindid>0

andindid<255)

dropindexworker.subjiection_FK

go

ifexists(select1

fromsysobjects

whereid=object_id('worker')

andtype='U')

droptableworker

go

/*==============================================================*/

/*Table:

worker*/

/*==============================================================*/

createtableworker(

workeridbigintnotnull,

manageridintnull,

deparmentidintnull,

wnamevarchar(30)notnull,

workerpwvarchar(50)notnull,

constraintPK_WORKERprimarykeynonclustered(workerid)

go

/*==============================================================*/

/*Index:

manage_FK*/

/*==============================================================*/

createindexmanage_FKonworker(

manageridASC

go

/*==============================================================*/

/*Index:

subjiection_FK*/

/*==============================================================*/

createindexsubjiection_FKonworker(

deparmentidASC

go

altertableworker

addconstraintFK_WORKER_MANAGE_MANAGERforeignkey(managerid)

referencesmanager(managerid)

go

altertableworker

addconstraintFK_WORKER_SUBJIECTI_DEPARMENforeignkey(deparmentid)

referencesdeparment(deparmentid)

go

◆客户表:

altertablecsinfo

dropconstraintFK_CSINFO_TAKE_COMPANY

go

altertableserver

dropconstraintFK_SERVER_SERVER2_COMPANY

go

altertabletakepartin

dropconstraintFK_TAKEPART_TAKEPARTI_COMPANY

go

ifexists(select1

fromsysobjects

whereid=object_id('company')

andtype='U')

droptablecompany

go

/*==============================================================*/

/*Table:

company*/

/*==============================================================*/

createtablecompany(

companyidintnotnull,

companynamevarchar(50)notnull,

vocationvarchar(50)null,

addressvarchar(50)null,

companytelvarchar(50)null,

companyleadervarchar(50)null,

levelchar(8)null,

companystatevarchar(30)null,

constraintPK_COMPANYprimarykeynonclustered(companyid)

Go

◆服务表:

altertableserver

dropconstraintFK_SERVER_SERVER_WORKER

go

altertableserver

dropconstraintFK_SERVER_SERVER2_COMPANY

go

ifexists(select1

fromsysindexes

whereid=object_id('server')

andname='server2_FK'

andindid>0

andindid<255)

dropindexserver.server2_FK

go

ifexists(select1

fromsysindexes

whereid=object_id('server')

andname='server_FK'

andindid>0

andindid<255)

dropindexserver.server_FK

go

ifexists(select1

fromsysobjects

whereid=object_id('server')

andtype='U')

droptableserver

go

/*==============================================================*/

/*Table:

server*/

/*==============================================================*/

createtableserver(

workeridbigintnotnull,

companyidintnotnull,

serverpingjiavarchar(50)notnull,

constraintPK_SERVERprimarykey(workerid,companyid)

go

/*==============================================================*/

/*Index:

server_FK*/

/*==============================================================*/

createindexserver_FKonserver(

workeridASC

go

/*==============================================================*/

/*Index:

server2_FK*/

/*==============================================================*/

createindexserver2_FKonserver(

companyidASC

go

altertableserver

addconstraintFK_SERVER_SERVER_WORKERforeignkey(workerid)

referencesworker(workerid)

go

altertableserver

addconstraintFK_SERVER_SERVER2_COMPANYforeignkey(companyid)

referencescompany(companyid)

go

◆参与表:

altertabletakepartin

dropconstraintFK_TAKEPART_TAKEPARTI_MARKETAC

go

altertabletakepartin

dropconstraintFK_TAKEPART_TAKEPARTI_COMPANY

go

ifexists(select1

fromsysindexes

whereid=object_id('takepartin')

andname='takepartin2_FK'

andindid>0

andindid<255)

dropindextakepartin.takepartin2_FK

go

ifexists(select1

fromsysindexes

whereid=object_id('takepartin')

andname='takepartin_FK'

andindid>0

andindid<255)

dropindextakepartin.takepartin_FK

go

ifexists(select1

fromsysobjects

whereid=object_id('takepartin')

andtype='U')

droptabletakepartin

go

/*==============================================================*/

/*Table:

takepartin*/

/*==============================================================*/

createtabletakepartin(

activenobigintnotnull,

companyidintnotnull,

constraintPK_TAKEPARTINprimarykey(activeno,companyid)

go

/*==============================================================*/

/*Index:

takepartin_FK*/

/*==============================================================*/

createindextakepartin_FKontakepartin(

activenoASC

go

/*==============================================================*/

/*Index:

takepartin2_FK*/

/*==============================================================*/

createindextakepartin2_FKontakepartin(

companyidASC

go

altertabletakepartin

addconstraintFK_TAKEPART_TAKEPARTI_MARKETACforeignkey(activeno)

referencesmarketactive(activeno)

go

altertabletakepartin

addconstraintFK_TAKEPART_TAKEPARTI_COMPANYforeignkey(companyid)

referencescompany(companyid)

go

◆市场活动表:

altertablemarketactive

dropconstraintFK_MARKETAC_ADMINISTR_MANAGER

go

altertablemarketactive

dropconstraintFK_MARKETAC_WORK_WORKER

go

altertabletakepartin

dropconstraintFK_TAKEPART_TAKEPARTI_MARKETAC

go

ifexists(select1

fromsysindexes

whereid=object_id('marketactive')

andname='administrator_FK'

andindid>0

andindid<255)

dropindexmarketactive.administrator_FK

go

ifexists(select1

fromsysindexes

whereid=object_id('marketactive')

andname='work_FK'

andindid>0

andindid<255)

dropindexmarketactive.work_FK

go

ifexists(select1

fromsysobjects

whereid=object_id('marketactive')

andtype='U')

droptablemarketactive

go

/*==============================================================*/

/*Table:

marketactive*/

/*==============================================================*/

createtablemarketactive(

activenobigintnotnull,

manageridintnull,

workeridbigintnull,

activetimedatetimenotnull,

activecontentvarchar(100)null,

constraintPK_MARKETACTIVEprimarykeynonclustered(activen

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

当前位置:首页 > 表格模板 > 合同协议

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

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