欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

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

  • 资源ID:97372117       资源大小:858KB        全文页数:35页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

精品范文模板 可修改删除撰写人:_日 期:_客户资源管理系统数据库设计所属课程名称 数据库原理与应用 班 级 07计算机软件工程方向 团 队 成 员 张灵惠 吴欢斌 成 绩 提交时间:2009 年 12 月 25 日(一)、客户资源管理系统需求分析 1、调查了解学籍管理系统的初步需求 企业的发展离不开客户对企业的认知度、美誉度、忠诚度,为了提高客户满意度必须对客户资源进行科学有效的管理。客户资源管理系统对客户信息(包括潜在的和已有的客户)进行有效管理和应用,并通过适当的步骤来构建和维护有价值的客户关系。 客户资源管理系统主要功能表序号功能名称 功能说明 1客户信息管理实现客户的增加、删除、修改和查询、打印,并提供客户分开查询、管理功能 2市场活动管理针对各部门的活动主题、内容、类型、客户及负责员工进行合理安排 3客服管理查看客户的服务请求,管理客服人员的服务内容、类型、处理等级以及客户的反馈信息和满意程度 4日程提醒对未来事件的主题、日期、内容、处理状态进行维护,以保证及时联系重要客户 5数据管理导入导出数据,数据备份与恢复 6系统管理包括代码管理、员工管理和账号管理3、根据系统的初步需求,分析设计顶层数据流图(1)、1层数据流图如下图所示: 0 客户资源管理客户信息管理 代码 客户资料 市场活动信息 员工基本信息 客户服务记录 日程提醒信息员工管理人员客服信息(2)、2层数据流图如下图所示: 5日程管理 3市场活动管理 4客服管理 2客户管理 客户资料员工 市场活动信息客户服务记录客服信息实体日程提醒 1系统管理管理人员员工信息 代码客户基本信息市场活动信息客服管理客户资料客户资料汇总报表查询统计条件市场活动基本信息市场活动安排报表活动安排客服信息查询统计日程提醒信息4、制定整理数据字典 (1)、分析数据流图,确定数据流的描述 在客户管理数据流图中,包含“客户资料”、“变更客户资料要求”、“删除客户资料要求”、“新增的客户信息”、“修改后的客户资料”等数据流。 数据流描述数据流卡编号:F1 名称:客户资料来源:客户信息去向:客户信息显示数据结构:客户编号、客户名称、客户等级、客户状态说明:某公司的全部客户资料数据流卡编号:F2 名称: 变更客户资料要求来源:管理员输入去向:客户信息查询数据结构: 客户编号、客户名称、客户等级、客户状态说明:某次要变动的客户资料要求数据流卡编号:F3 名称:删除客户资料要求 来源:管理员输入去向:删除客户资料数据结构: 客户资料说明:某次要删除的客户资料要求数据流卡编号:F4名称:新增的客户信息 来源:去向:数据结构: 说明:某次添加的新的客户信息数据流卡编号:F7 名称: 修改后的客户资料来源:去向:数据结构: 说明:某次修改后的客户资料(2)、分析数据流图,确定数据存储的描述在客户管理数据流图中,包含“客户资料”等数据存储,描述其数据存储。 数据存储:客户资料说 明:保存各个客户的资料信息流入数据流:新增的客户资料、修改后的客户资料流出数据流:客户资料显示 组 成:客户编号、客户姓名、客户等级存取方式:随机存取(3)、分析数据流图,确定数据项的描述数据项的定义:数据项编号:I01-01数据项名称:客户编号别名:客户编码简述:客户的顺序代号类型:数字数据项编号:I01-02数据项名称:客户姓名别名:客户名称简述:客户的称呼类型:文本 数据项编号:I01-03数据项名称:所属行业别名: 简述:客户的行业类型:文本 数据项编号:I01-04数据项名称:所在地区 别名: 简述:客户的居住地类型:文本  数据项编号:I01-05数据项名称:电话号码 别名: 简述:客户的电话号码类型:数字 数据项编号:I01-09数据项名称:客户等级 别名: 简述:客户的重要性类型:文本 (4)、分析数据流图,确定处理过程的描述 在客户管理数据流图中,包含“客户信息查询”、“增加客户信息”、“修改客户信息”、“删除客户信息”、等处理过程,描述它们的处理流程。 处理过程:增加客户信息查询说 明:录入一个客户的资料信息输 入:客户编号、姓名输 出:客户基本信息处 理:在“客户信息”数据存储中增加一个客户的基本信息 处理过程:修改客户信息说 明:录入一个客户的基本信息输 入:客户编号、姓名 输 出:客户基本信息 处 理:在“客户基本信息”数据存储中修改一个客户的考试成绩 处理过程:客户信息查询 说 明:输入要查询的客户信息条件 输 入:管理人员 输 出:客户信息显示 处 理:输出某个客户的信息 处理过程:删除客户信息 说 明:删除某个客户的信息 输 入:客户编号、姓名 输 出: 处 理:在“客户信息”数据存储中少了一个客户的信息二、客户信息管理概念结构设计 在客户资料管理中抽象实体,实体的码用下划线标出 客户实体的属性为: 客户编号、姓名、所属行业、电话、法人、经营范围、所在地区、客户等级、客户状态、传真 管理员实体的属性为:管理员编号、管理员姓名、密码 员工实体的属性为: 员工编号、部门编号、员工名称、密码 部门实体的属性为:部门编号、部门名称 客服信息实体的属性为:服务编号、客户名称、联系人、受理方式、处理状态、处理部门编号、服务内容、处理日期、客户满意程度、客户反馈信息 市场活动信息实体的属性为:活动编号、活动主题、负责员工编号、客户编号、部门编号、联系时间、活动时间、活动类型、活动方式、活动内容(3)、确定实体间的关系,设计E-R图 为了简化设计,使用以下约束:一个管理员只管理一个部门,一个管理员可以管理多个多个员工一个客户只受一个员工服务,一个员工可以服务多个客户 一个员工只能属于一个部门,一个部门可以有多个员工 在客户管理局部应用根据客户管理中的客户管理的局部应用,确定各实体间的联系一个客户必须被一个员工服务,而一个员工可以为多个客户服务,因此客户与员工的所在联系为n :1联系;一个员工必须隶属于一个部门,一个部门包含多个员工,因此部门与员工的隶属联系是1:n联系;根据约定一个部门只有一个管理人员,一个管理人员只担任一个部门的经理,因此部门与经理的管理联系时1:1联系(4)、合并分E-R图,解决冲突,消除冗余,设计基本E-R图,如下图所示:(三)逻辑设计和物理设计(6)、使用PowerDesigner设计CDM 由CDM生成PDM:(四)数据库实施各个表如下图所示:员工表:alter table csinfo drop constraint FK_CSINFO_DISPOSE_WORKERgoalter table marketactive drop constraint FK_MARKETAC_WORK_WORKERgoalter table server drop constraint FK_SERVER_SERVER_WORKERgoalter table worker drop constraint FK_WORKER_MANAGE_MANAGERgoalter table worker drop constraint FK_WORKER_SUBJIECTI_DEPARMENgoif exists (select 1 from sysindexes where id = object_id('worker') and name = 'manage_FK' and indid > 0 and indid < 255) drop index worker.manage_FKgoif exists (select 1 from sysindexes where id = object_id('worker') and name = 'subjiection_FK' and indid > 0 and indid < 255) drop index worker.subjiection_FKgoif exists (select 1 from sysobjects where id = object_id('worker') and type = 'U') drop table workergo/*=*/* Table: worker */*=*/create table worker ( workerid bigint not null, managerid int null, deparmentid int null, wname varchar(30) not null, workerpw varchar(50) not null, constraint PK_WORKER primary key nonclustered (workerid)go/*=*/* Index: manage_FK */*=*/create index manage_FK on worker (managerid ASC)go/*=*/* Index: subjiection_FK */*=*/create index subjiection_FK on worker (deparmentid ASC)goalter table worker add constraint FK_WORKER_MANAGE_MANAGER foreign key (managerid) references manager (managerid)goalter table worker add constraint FK_WORKER_SUBJIECTI_DEPARMEN foreign key (deparmentid) references deparment (deparmentid)go客户表:alter table csinfo drop constraint FK_CSINFO_TAKE_COMPANYgoalter table server drop constraint FK_SERVER_SERVER2_COMPANYgoalter table takepartin drop constraint FK_TAKEPART_TAKEPARTI_COMPANYgoif exists (select 1 from sysobjects where id = object_id('company') and type = 'U') drop table companygo/*=*/* Table: company */*=*/create table company ( companyid int not null, companyname varchar(50) not null, vocation varchar(50) null, address varchar(50) null, companytel varchar(50) null, companyleader varchar(50) null, level char(8) null, companystate varchar(30) null, constraint PK_COMPANY primary key nonclustered (companyid)Go服务表:alter table server drop constraint FK_SERVER_SERVER_WORKERgoalter table server drop constraint FK_SERVER_SERVER2_COMPANYgoif exists (select 1 from sysindexes where id = object_id('server') and name = 'server2_FK' and indid > 0 and indid < 255) drop index server.server2_FKgoif exists (select 1 from sysindexes where id = object_id('server') and name = 'server_FK' and indid > 0 and indid < 255) drop index server.server_FKgoif exists (select 1 from sysobjects where id = object_id('server') and type = 'U') drop table servergo/*=*/* Table: server */*=*/create table server ( workerid bigint not null, companyid int not null, serverpingjia varchar(50) not null, constraint PK_SERVER primary key (workerid, companyid)go/*=*/* Index: server_FK */*=*/create index server_FK on server (workerid ASC)go/*=*/* Index: server2_FK */*=*/create index server2_FK on server (companyid ASC)goalter table server add constraint FK_SERVER_SERVER_WORKER foreign key (workerid) references worker (workerid)goalter table server add constraint FK_SERVER_SERVER2_COMPANY foreign key (companyid) references company (companyid)go 参与表:alter table takepartin drop constraint FK_TAKEPART_TAKEPARTI_MARKETACgoalter table takepartin drop constraint FK_TAKEPART_TAKEPARTI_COMPANYgoif exists (select 1 from sysindexes where id = object_id('takepartin') and name = 'takepartin2_FK' and indid > 0 and indid < 255) drop index takepartin.takepartin2_FKgoif exists (select 1 from sysindexes where id = object_id('takepartin') and name = 'takepartin_FK' and indid > 0 and indid < 255) drop index takepartin.takepartin_FKgoif exists (select 1 from sysobjects where id = object_id('takepartin') and type = 'U') drop table takepartingo/*=*/* Table: takepartin */*=*/create table takepartin ( activeno bigint not null, companyid int not null, constraint PK_TAKEPARTIN primary key (activeno, companyid)go/*=*/* Index: takepartin_FK */*=*/create index takepartin_FK on takepartin (activeno ASC)go/*=*/* Index: takepartin2_FK */*=*/create index takepartin2_FK on takepartin (companyid ASC)goalter table takepartin add constraint FK_TAKEPART_TAKEPARTI_MARKETAC foreign key (activeno) references marketactive (activeno)goalter table takepartin add constraint FK_TAKEPART_TAKEPARTI_COMPANY foreign key (companyid) references company (companyid)go 市场活动表:alter table marketactive drop constraint FK_MARKETAC_ADMINISTR_MANAGERgoalter table marketactive drop constraint FK_MARKETAC_WORK_WORKERgoalter table takepartin drop constraint FK_TAKEPART_TAKEPARTI_MARKETACgoif exists (select 1 from sysindexes where id = object_id('marketactive') and name = 'administrator_FK' and indid > 0 and indid < 255) drop index marketactive.administrator_FKgoif exists (select 1 from sysindexes where id = object_id('marketactive') and name = 'work_FK' and indid > 0 and indid < 255) drop index marketactive.work_FKgoif exists (select 1 from sysobjects where id = object_id('marketactive') and type = 'U') drop table marketactivego/*=*/* Table: marketactive */*=*/create table marketactive ( activeno bigint not null, managerid int null, workerid bigint null, activetime datetime not null, activecontent varchar(100) null, constraint PK_MARKETACTIVE primary key nonclustered (activeno)go/*=*/* Index: work_FK */*=*/create index work_FK on marketactive (workerid ASC)go/*=*/* Index: administrator_FK */*=*/create index administrator_FK on marketactive (managerid ASC)goalter table marketactive add constraint FK_MARKETAC_ADMINISTR_MANAGER foreign key (managerid) references manager (managerid)goalter table marketactive add constraint FK_MARKETAC_WORK_WORKER foreign key (workerid) references worker (workerid)go 管理人员表:alter table manager drop constraint FK_MANAGER_SUBJECTIO_DEPARMENgoalter table marketactive drop constraint FK_MARKETAC_ADMINISTR_MANAGERgoalter table worker drop constraint FK_WORKER_MANAGE_MANAGERgoif exists (select 1 from sysindexes where id = object_id('manager') and name = 'subjection2_FK' and indid > 0 and indid < 255) drop index manager.subjection2_FKgoif exists (select 1 from sysobjects where id = object_id('manager') and type = 'U') drop table managergo/*=*/* Table: manager */*=*/create table manager ( managerid int not null, deparmentid int null, managername varchar(30) not null, managerpw varchar(50) not null, constraint PK_MANAGER primary key nonclustered (managerid)go/*=*/* Index: subjection2_FK */*=*/create index subjection2_FK on manager (deparmentid ASC)goalter table manager add constraint FK_MANAGER_SUBJECTIO_DEPARMEN foreign key (deparmentid) references deparment (deparmentid)go 客服信息表:alter table csinfo drop constraint FK_CSINFO_DISPOSE_WORKERgoalter table csinfo drop constraint FK_CSINFO_TAKE_COMPANYgoif exists (select 1 from sysindexes where id = object_id('csinfo') and name = 'dispose_FK' and indid > 0 and indid < 255) drop index csinfo.dispose_FKgoif exists (select 1 from sysindexes where id = object_id('csinfo') and name = 'take_FK' and indid > 0 and indid < 255) drop index csinfo.take_FKgoif exists (select 1 from sysobjects where id = object_id('csinfo') and type = 'U') drop table csinfogo/*=*/* Table: csinfo */*=*/create table csinfo ( infoid bigint not null, workerid bigint null, companyid int null, connection varchar(50) null, content varchar(100) null, managedate datetime null, feel char(10) null, feedback varchar(50) null, managestate char(10) null, constraint PK_CSINFO primary key nonclustered (infoid)go/*=*/* Index: dispose_FK */*=*/create index dispose_FK on csinfo (workerid ASC)go/*=*/* Index: take_FK */*=*/create index take_FK on csinfo (companyid ASC)goalter table csinfo add constraint FK_CSINFO_DISPOSE_WORKER foreign key (workerid) references worker (workerid)goalter table csinfo add constraint FK_CSINFO_TAKE_COMPANY foreign key (companyid) references company (companyid)go 部门表:alter table manager drop constraint FK_MANAGER_SUBJECTIO_DEPARMENgoalter table worker drop constraint FK_WORKER_SUBJIECTI_DEPARMENgoif exists (select 1 from sysindexes where id = object_id('deparment') and name = 'subjection_FK' and indid > 0 and indid < 255) drop index deparment.subjection_FKgoif exists (select 1 from sysobjects where id = object_id('deparment') and type = 'U') drop table deparmentgo/*=*/* Table: deparment */*=*/create table deparment ( deparmentid int not null, deparmentname varchar(30) null, constraint PK_DEPARMENT primary key nonclustered (deparmentid)go/*=*/* Index: subjection_FK */*=*/create index subjection_FK on deparment ()go使用PDM直接与数据库连接,如下图所示:接着执行SQL语句,此时可以在SQL中看到用户的8个表,如下图所示:(五)触发器设计(举例)用于测试数据用到的表(原始表),如下图所示:查找属于不同等级的客户的人数create procedure p_levelasbegin declare level1 int -待统计等级上限 declare num int -待统计用户等级人数-设置被统计等级的初值 set level1=5set num=0while(level1>=1)begin set num=(select count(*)from company a where a.level=level1) print str(level1)+' 级客户人数为'+str(num) Select companyid,companyname,companyleader,companytel from company where level=level1-调整统计等级if level1>0 set level1=level1-1 else set level1=0endend使用测试数据,执行结果如下图所示:把所有的客户等级为3的客户等级改为2create trigger chongzhibefore insert or update on companyinfofor each rowas begin if(new.level=3) new.level=2;end if;end; 第 35 页 共 35 页免责声明:图文来源于网络搜集,版权归原作者所以若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。

注意事项

本文(客户资源管理系统数据库设计)为本站会员(陈**)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!