软件开发类专业毕业设计论文《CRM客户关系管理系统》第2部分.docx
- 文档编号:24724760
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:12
- 大小:660.26KB
软件开发类专业毕业设计论文《CRM客户关系管理系统》第2部分.docx
《软件开发类专业毕业设计论文《CRM客户关系管理系统》第2部分.docx》由会员分享,可在线阅读,更多相关《软件开发类专业毕业设计论文《CRM客户关系管理系统》第2部分.docx(12页珍藏版)》请在冰豆网上搜索。
软件开发类专业毕业设计论文《CRM客户关系管理系统》第2部分
3.2蓝梦CRM系统数据结构设计
3.2.1本系统数据库表设计中所遵守的基本原则
在数据库设计上,本着“对象多,数据库表少”的原则,并满足数据库设计中的前三个范式,同时将客户信息与业务相关的信息分离在不同的表中——比如,将客户信息和产品信息分离。
(1)数字型:
数字型字段尽量采用number类型。
(2)系统时间:
由数据库产生的系统时间首选数据库的日期型,如DATE类型。
(3)外部时间:
由数据导入或外部应用程序产生的日期时间类型采用varchar类型,数据格式采用:
YYYYMMDDHH24MISS。
(4)大字段:
如无特别需要,尽可能避免使用大字段(blob,clob,long,text,image等)。
(5)唯一键:
对于数字型唯一键值,尽可能用系列sequence产生。
3.2.2数据字典设计及数据库表命名规则
本系统的数据库共包含6张数据库表,其中4张为核心数据库表,2张为辅助信息数据库表,各个数据库表字段的命名遵守如下的规则:
(1)customer_Info(客户信息)表各字段都以customer开头,其后加上代表本字段含义的单词,如customer_Name代表客户的名称等。
(2)order_Info(订单信息)表除外键外各字段都以order_开头,其后加上代表本字段含义的单词,如order_State代表订单的状态等。
(3)contract_Info(合同信息)表除外键外各字段都以contract_开头,其后加上代表本字段含义的单词,如contract_State代表合同的状态等。
(4)production_Info(产品信息)表各字段都以production开头,其后加上代表本字段含义的单词,如production_Name代表产品的名称等。
表3.1核心数据库表customer_Info(客户信息表)各个字段结构定义
字段名
类型
可否为空
键值
备注
customer_ID
number(10)
否
PK
客户ID
customer_name
varchar(25)
否
客户姓名
customer_sex
bit
(1)
否
客户性别
customer_age
number(3)
否
客户年龄
customer_isValid
number
(1)
否
客户信息是否有效
customer_occupation
varchar(25)
否
客户所在行业
customer_unitSize
varchar(25)
否
客户单位人员规模
customer_unitName
varchar(25)
否
客户单位名称
customer_unitInstructionText
text
否
客户单位简介
customer_importantLevel
number
(1)
否
客户重要级别
customer_level
number
(1)
否
客户信用等级
customer_eMail
varchar(25)
否
客户电子邮箱
customer_postCode
number(6)
否
邮政编码
customer_workAddress
number(6)
否
客户通信地址
customer_mobileNumber
varchar(13)
否
客户手机号
customer_updateDate
date
否
最后更新日期
表3.2核心数据库表order_Info(订单信息表)各个字段结构定义
字段名
类型
可否为空
键值
备注
order_ID
number(10)
否
PK
订单ID
customer_ID
number(10)
否
FK
客户ID
loginUser_ID
number(10)
否
FK
登录用户(员工)ID
contract_ID
number(10)
否
FK
合同ID
order_paymentMethod
varchar(20)
否
订单支付方式
order_currentState
varchar(10)
否
订单当前状态
order_disCount
double(10)
否
订单折扣率
order_createDate
date
否
订单下单日期
order_sendProductionDate
date
否
订单发货日期
order_totalPrice
number(6)
否
订单总金额(元)
order_instructionText
text
否
订单说明
其中订单的状态主要可以分为如下五种状态:
未处理、已发货、签收、最终未签收和撤销。
而处于未处理状态的订单是指客户已经订货,但是作为发货方的仓库却没有做任何处理;处于已发货的订单是指订单中的产品已经发货并且派送;处于签收的订单是指客户已经和货物见面,可能出现正常签收和拒收的情况;处于最终未签收状态的订单是指由于客户的原因(不满意或无人接收)最终没有完成正常签收的订单;处于撤销状态的订单是指最终被取消的订单。
表3.3核心数据库表contract_Info(合同信息表)各个字段结构定义
字段名
类型
可否为空
键值
备注
contract_ID
number(10)
否
PK
合同ID
contract_kindNumber
number
(1)
否
合同类型
contract_titleText
varchar(50)
否
合同标题
customer_ID
varchar(25)
否
FK
甲方签订人ID
contract_secondName
varchar(25)
否
乙方签订人姓名
contract_currentState
varchar(10)
否
合同状态
contract_totalMoney
double
否
合同总金额
contract_signDate
date
否
签订日期
contract_deadLineDate
date
否
截止日期
contract_instructionText
text
否
合同说明
表3.4核心数据库表production_Info(产品信息表)各个字段结构定义
字段名
类型
可否为空
键值
备注
production_ID
number(10)
否
PK
产品ID
order_ID
number(10)
是
FK
订单ID
production_barCode
varchar(25)
否
产品条码
production_NameModel
varchar(25)
否
产品名称和型号
production_providerName
varchar(25)
否
产品生产商
production_produceDate
date
否
产品出厂日期
production_kindNumber
varchar(15)
否
产品分类
production_salePrice
double
否
产品价格
production_totalNumber
number(5)
否
产品进库总数量
production_inventoryNumber
number(5)
否
当前库存数量
production_currentState
varchar(10)
否
产品当前状态
production_imageFileName
varchar(60)
否
产品图片文件路径
production_image
blob
否
产品图片
production_costingPrice
double
否
成本价格
production_instructionText
text
否
产品说明
表3.5辅助数据库表loginUser_Info(登录用户信息表)各个字段结构定义
字段名
类型
是否为空
备注
loginUser_ID
number(10)
否
登录用户ID
loginUser_departmentName
varchar(25)
否
登录用户所在的部门名称
loginUser_userName
varchar(20)
否
登录用户账号
loginUser_userPassWord
varchar(12)
否
登录用户密码
loginUser_actorKind
number
(1)
否
登录用户的角色
表3.6辅助数据库表orderProduction_Info(订单—产品关联信息表)各个字段结构定义
字段名
数据类型
是否为空
备注
orderProduction_ID
number(10)
否
ID序列号
order_ID
number(10)
否
订单ID
production_ID
number(10)
否
产品ID
order_productionNumber
number(5)
否
某一产品数量
3.2.3安全保密设计
本数据库系统采用安全的用户名加口令方式登录。
根据系统的业务流程,不同的用户拥有对于数据库的不同操作权限。
并且数据库只能由服务器端连接,不允许客户端绕过服务器直接连接数据库。
对数据库中的“增、删、改、查”必须具有相应的权限才能进行。
本系统在后续的改进版中将增加权限管理功能:
在用户登录时根据用户的用户名及口令查找数据库用户表中“身份”字段值,将该用户的角色保存在HttpSession对象中,并通过对HttpSession对象中的角色信息进行检查,验证该用户所拥有的操作权限,并将其没有权限的功能控制为对其隐藏或不可用。
3.3蓝梦CRM系统出错处理设计
3.3.1系统出错信息
(1)出错信息显示方式:
所有出错信息均以错误提示页面的方式显示。
(2)出错信息分类:
1)由于输入格式不正确或输入信息不完全,属于处理错误;
2)由于操作顺序不正确,属于操作流程错误;
3)由于没有操作权限,属于权限错误;
4)由于系统的预设不能执行的错误,属于设定错误;
5)由于网路传输超时、服务器响应超时等,属于系统错误;
6)由于断电,属于硬件错误;
(3)出错信息必须给出相应的出错原因,具体出错信息详见系统操作说明书
3.3.2系统出错补救措施
(1)故障出现后可能采取的变通措施:
1)可预见错误:
在操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中即可,按预设好的错误处理流程进行。
2)不可预见错误:
所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。
若真断电时,客户机上将不会有太大的影响,主要是服务器上:
在断电后恢复过程可采用MYSQL的日志文件,对其进行ROLLBACK处理,对数据进行恢复。
3)在网络传输方面:
可考虑建立一条成本较低的后备网络,以保证当网络断路数据的通信。
在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。
3.3.3系统维护设计
程序中设有专门的错误处理包及各种错误处理页面,专门负责实现错误处理流程。
而在维护方面,主要为对服务器上的数据库数据进行维护。
可使用MYSQL的数据库维护功能机制。
例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。
4蓝梦CRM系统实现
4.1CRM系统实现中所应该遵守的基本要求
4.1.1对数据访问层编程实现的基本要求
(1)尽量在SQL语句中少用IN操作符
虽然用IN操作符写拼接出的SQL语句清晰易懂,但由于性能低下——主要是由于用IN的SQL语句至少多了一个转换过程。
因此尽量在系统开发中不应用该操作符,必要时可以用EXISTS方案代替。
(2)对NOTIN操作也不推荐使用,可以用NOTEXISTS或外连接方案代替,因为前者不能够使用表中的索引。
(3)由于不等于操作符是永远不会用到索引的,因此对它处理只会产生全表扫描。
可以用相同功能的操作运算符代替。
(4)由于UNION在进行表链接后会筛选掉重复的记录,在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果,因此在数据量相当庞大时,会很费时,因此可以用UNIONALL的形式代替UNION,节省大量排序筛选的时间。
(5)当存在索引的时候,尽量使用比较准确的大于小于操作符。
如:
尽量使用A>=3而不用A>2,因为前者可以直接定位到等于3的记录,而后者要先定位到等于2的记录再进行比较筛选。
4.1.2对系统中的业务服务层和数据访问层充分应用单元测试
单元测试是在软件开发过程中要进行的低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试也必须还应该是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中。
图4.1为项目中的数据库连接组件的单元测试的结果局部截图。
图4.1项目中的数据库连接组件的单元测试的结果局部截图
单元测试是由程序员自己来完成,最终受益的也是程序员自己。
程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试用例——验证对应的功能代码的行为和系统所期望的保持一致。
4.1.3系统表现层充分应用RIA技术提高用户体验
(1)系统登录主界面
(2)登录成功后的主界面
4.2客户信息管理模块实现
4.2.1添加客户信息
图4.2添加客户信息表单页面的局部截图
4.2.2查询客户信息
图4.3查询客户信息表单页面的局部截图
图4.4查询客户信息结果页面的局部截图
4.2.3删除客户信息
图4.5删除客户信息表单页面的局部截图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CRM客户关系管理系统 软件 开发 类专业 毕业设计 论文 CRM 客户关系 管理 系统 部分