




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第15章客戶(hù)關(guān)系管理系統(tǒng)CRM的設(shè)計(jì)CRM的英文是 Customer Relationship Management ,中文為“客戶(hù)關(guān)系管理" 。CRM軟 件的主要目的就是通過(guò)對(duì)客戶(hù)詳細(xì)資料的深入分析,來(lái)提高客戶(hù)滿(mǎn)意程度,從而提高企業(yè)的競(jìng)爭(zhēng)力的一種手段。網(wǎng)絡(luò)時(shí)代的客戶(hù)關(guān)系管理是利用現(xiàn)代信息手段,在企業(yè)與用戶(hù)之間建立一種實(shí)時(shí)的交互管理系統(tǒng)。本章主要講解客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì),設(shè)計(jì)流程如圖15-1所示??蛻?hù)關(guān)系管理系統(tǒng)設(shè)計(jì)流程圖圖15-1客戶(hù)關(guān)系管理系統(tǒng)設(shè)計(jì)流程15.1 CRM的分類(lèi)和價(jià)值體現(xiàn)15.1.1 CRM的分類(lèi)CRM系統(tǒng)有三種類(lèi)型:操作型、分析型和協(xié)同型。(1)操作型CRM:主要
2、方便與客戶(hù)的交流,簡(jiǎn)化操作流程。利用業(yè)務(wù)系統(tǒng)以及渠道系 統(tǒng)收集的客戶(hù)信息,進(jìn)行深層次的挖掘,提升系統(tǒng)的業(yè)務(wù)價(jià)值。(2)分析型CRM : 了解客戶(hù)的需求,比如新業(yè)務(wù)有沒(méi)有客戶(hù)群、如何吸引他們、如何 創(chuàng)造更高價(jià)值、潛在客戶(hù)群是什么類(lèi)型等等。分析型 CRM強(qiáng)調(diào)對(duì)各種數(shù)據(jù)的分析,并 從中獲得有價(jià)值的信息。其主要包括的模塊類(lèi)型應(yīng)為客戶(hù)分析、客戶(hù)分析、數(shù)據(jù)管理和市場(chǎng)定向,核心是分析已發(fā)生的事情,同時(shí)根據(jù)歷史數(shù)據(jù)和數(shù)據(jù)挖掘技術(shù),預(yù)測(cè)即將發(fā)生的事情。(3)協(xié)同型CRM :整合各種職能,協(xié)調(diào)各個(gè)部門(mén)之間的聯(lián)系。協(xié)同型CRM其實(shí)可以算是輔助型軟件,主要實(shí)現(xiàn)的是數(shù)據(jù)共享和業(yè)務(wù)協(xié)同。CRM軟件系統(tǒng)主要表現(xiàn)在這三個(gè)層面
3、:第一層操作型CRM ;第二層分析型 CRM ;第三層協(xié)同型CRM。15.1.2 CRM的價(jià)值體現(xiàn)CRM 的價(jià)值主要體現(xiàn)在:( 1)通過(guò)對(duì)用戶(hù)信息資源的整合,在企業(yè)內(nèi)部達(dá)到資源共享,從而為客戶(hù)提供更快速周到的優(yōu)質(zhì)服務(wù),吸引和保持更多的客戶(hù)。( 2)通過(guò)對(duì)業(yè)務(wù)流程的重新設(shè)計(jì),更有效地管理客戶(hù)關(guān)系,降低企業(yè)成本。( 3)通過(guò)滿(mǎn)足客戶(hù)的個(gè)性需求,提高客戶(hù)的忠誠(chéng)度和保有率。( 4)根據(jù)對(duì)客戶(hù)特征、購(gòu)買(mǎi)行為和價(jià)值取向的深入分析,為企業(yè)的決策提供科學(xué)、量化的指導(dǎo)。( 5)客戶(hù)及其所有關(guān)聯(lián)信息,均得到合理的分類(lèi)和管理。( 6)分析競(jìng)爭(zhēng)對(duì)手,改善客戶(hù)關(guān)系,增加企業(yè)收益。企業(yè)根據(jù)CRM 的分類(lèi)和價(jià)值體現(xiàn)體現(xiàn),選
4、擇合適的客戶(hù)關(guān)系管理軟件。15.2 企業(yè)的 CRM 需求分析一個(gè)軟件的成功離不開(kāi)一個(gè)好的需求分析,其處于軟件開(kāi)發(fā)的初期階段,直接影響到后期的模塊設(shè)計(jì)。15.2.1 企業(yè)的需求列表本例的客戶(hù)關(guān)系管理系統(tǒng),是為中小型軟件公司定制的一款操作型CRM 。軟件公司結(jié)合自身業(yè)務(wù)特點(diǎn),提出了下列需求:( 1)詳細(xì)的客戶(hù)資料庫(kù),并能實(shí)現(xiàn)按照不同信息進(jìn)行查詢(xún),允許添加、修改。( 2)客戶(hù)按照不同地域劃分。地域主要分為5 大區(qū)域:華東、華北、東北、西北、華南,每個(gè)區(qū)域下面包含幾個(gè)主要的一級(jí)城市。( 3)客戶(hù)分為三種狀態(tài):已簽約、跟進(jìn)、終止合同。( 4)客戶(hù)分為不同的等級(jí):有效客戶(hù)、潛在客戶(hù)、意向客戶(hù)。( 5)公司
5、內(nèi)部部門(mén)列表,并能列出部門(mén)內(nèi)部的人員。( 6)公司競(jìng)爭(zhēng)對(duì)手資料庫(kù),允許實(shí)現(xiàn)查找、添加等功能。( 7)允許公司成員隨時(shí)都能查看公告。允許任何人發(fā)布公告信息。( 8)公司成員根據(jù)每天的工作情況填寫(xiě)工作日志。( 9)銷(xiāo)售人員每天將聯(lián)系的用戶(hù)信息登記到聯(lián)系記錄表。( 10)實(shí)施人員每周提交自己的工作任務(wù)和計(jì)劃。( 11)專(zhuān)門(mén)設(shè)立投訴功能,處理用戶(hù)的投訴信息,并有相應(yīng)的回訪(fǎng)記錄。( 12) 專(zhuān)門(mén)設(shè)立用戶(hù)需求庫(kù),處理用戶(hù)需要的功能列表。開(kāi)發(fā)人員要每天查看,并由具體負(fù)責(zé)人給出處理意見(jiàn)。( 13)實(shí)施人員每次實(shí)施完畢后,要登記實(shí)施記錄表,并填寫(xiě)實(shí)施總結(jié)。( 14) 客戶(hù)資料庫(kù)的聯(lián)系人和電話(huà)要求是客戶(hù)公司信息,
6、可單獨(dú)建立聯(lián)系人資料庫(kù),記錄所有與公司有關(guān)系的人的資料。項(xiàng)目經(jīng)理或者系統(tǒng)分析員以Excel 表的形式,羅列出用戶(hù)的所有需求,上報(bào)給開(kāi)發(fā)項(xiàng)目組討論。15.2.2 分析企業(yè)的需求項(xiàng)目經(jīng)理根據(jù)呈報(bào)的用戶(hù)需求列表,召集項(xiàng)目組成員,安排項(xiàng)目的分工情況,由項(xiàng)目小組組長(zhǎng)主持需求分析的會(huì)議。仔細(xì)分析需求列表中的每一條,不明白的地方,要提出來(lái)大家分析,并做會(huì)議記錄,由分析人員去跟用戶(hù)確認(rèn)。下面列表體現(xiàn)分析時(shí)的不確定因素:( 1)詳細(xì)的客戶(hù)資料。詳細(xì)到什么程度,主要包括客戶(hù)的哪些信息?( 2) 5 大區(qū)域是固定在數(shù)據(jù)庫(kù)中的信息,還是允許用戶(hù)自定義。( 3)發(fā)布公告信息的需求是否與當(dāng)前OA 系統(tǒng)沖突。( 4)是否由
7、專(zhuān)人處理客戶(hù)的投訴信息。( 5)權(quán)限的主要?jiǎng)澐忠罁?jù)是什么?( 6)與其他現(xiàn)存系統(tǒng)是否掛鉤?( 7)數(shù)據(jù)庫(kù)的選擇標(biāo)準(zhǔn),是否根據(jù)已有硬件系統(tǒng)決定。以上只是列出了需求分析的一些比較淺顯的內(nèi)容,在實(shí)際業(yè)務(wù)中,每一條需求都要仔細(xì)的斟酌,列出所有的疑問(wèn)點(diǎn),否則出現(xiàn)漏洞,引起用戶(hù)不滿(mǎn)或者程序返工,都將提高軟件的工作成本。15.2.3 體驗(yàn)企業(yè)業(yè)務(wù)流程并確定最終需求根據(jù)需求分析會(huì)議討論的內(nèi)容和筆記,分析人員親自到用戶(hù)處,親身體驗(yàn)企業(yè)的工作流程,與企業(yè)負(fù)責(zé)人員詳細(xì)討論每一條需求,并最終確定需求,與企業(yè)簽定合同。CRM 系統(tǒng)需求的最終修改如下:( 1)詳細(xì)的客戶(hù)資料,包括客戶(hù)名稱(chēng)、使用的軟件版本、客戶(hù)地址、客戶(hù)的
8、行業(yè)類(lèi)型、電話(huà)、主要聯(lián)系人和客戶(hù)所在區(qū)域。( 2) 5 大區(qū)域由用戶(hù)自己添加,并可實(shí)現(xiàn)編輯。( 3) CRM 中不實(shí)現(xiàn)公告管理功能,OA 系統(tǒng)已經(jīng)實(shí)現(xiàn)。( 4) 訴信息的處理,由投訴部人員決定( 5) 時(shí)不實(shí)現(xiàn)權(quán)限管理。( 6) 其他系統(tǒng)無(wú)任何聯(lián)系。( 7) 據(jù)庫(kù)使用SQL Server 系統(tǒng)。需求列表中的其他內(nèi)容不變。確定需求后,開(kāi)始設(shè)計(jì)系統(tǒng)的模塊。15.3 系統(tǒng)模塊設(shè)計(jì)需求分析之后,項(xiàng)目小組討論需求的實(shí)現(xiàn)工具和方法,詳細(xì)討論需求并確定最終模塊的劃分。15.3.1 根據(jù)需求確定模塊內(nèi)容根據(jù)需求列表和功能相似的原則,將整個(gè)系統(tǒng)分成4 個(gè)模塊:基礎(chǔ)配置模塊、客戶(hù)管理模塊、員工管理模塊和客戶(hù)服務(wù)管
9、理模塊。下面具體介紹這些模塊所包含的內(nèi)容。(1)基礎(chǔ)配置模塊:主要包括一些系統(tǒng)需要的基礎(chǔ)設(shè)置。有區(qū)域、客戶(hù)等級(jí)、客戶(hù)業(yè)務(wù)類(lèi)型、客戶(hù)狀態(tài)和部門(mén)設(shè)置 5部分。公司主要有 4個(gè)部門(mén):開(kāi)發(fā)部、銷(xiāo)售部、測(cè)試部和客 服部。模塊的結(jié)構(gòu)圖如 15-2所示。圖15-2 基礎(chǔ)配置模塊組成(2)客戶(hù)管理模塊:主要處理客戶(hù)的一些資料,以及與公司有關(guān)系的一些聯(lián)系人的信 息。該模塊的結(jié)構(gòu)如圖15-3所示。圖15-3 客戶(hù)管理模塊組成(3)成員管理模塊:主要用于管理公司內(nèi)部的人員。包括人員的基本資料、工作日志、任務(wù)計(jì)劃等。該模塊的結(jié)構(gòu)如圖15-4所示。圖15-4 成員管理模塊組成(4)客戶(hù)服務(wù)管理模塊:主要處理一些與客戶(hù)溝
10、通的信息。包括客戶(hù)需求的處理、客 戶(hù)投訴的處理、客戶(hù)實(shí)施記錄、合同管理等,該模塊的結(jié)構(gòu)如圖15-5所示。圖15-5客戶(hù)服務(wù)管理模塊組成模塊劃分完畢后,根據(jù)模塊的內(nèi)容,進(jìn)行類(lèi)圖的設(shè)計(jì)。15.3.2 分析功能模塊弁設(shè)計(jì)類(lèi)圖在實(shí)際流程中,要求每個(gè)功能都設(shè)計(jì)一個(gè)類(lèi),通常稱(chēng)為面向?qū)ο笤O(shè)計(jì)。根據(jù)上一節(jié)中模塊功能的介紹,現(xiàn)在為功能設(shè)計(jì)類(lèi),并以圖形化的方式表示。(1)基礎(chǔ)配置模塊:基礎(chǔ)配置模塊完成一些必要的基本配置,功能相似,本實(shí)例設(shè)計(jì) 一個(gè)基礎(chǔ)配置類(lèi),來(lái)實(shí)現(xiàn)其功能。基礎(chǔ)配置模塊的主要功能包括:添加區(qū)域、城市、獲取區(qū) 域ID,添加客戶(hù)等級(jí)、狀態(tài)和業(yè)務(wù)類(lèi)型,添加部門(mén)。為模塊設(shè)計(jì)一個(gè)類(lèi),命名為BasicSet,圖
11、15-6說(shuō)明了類(lèi)中的方法和方法的參數(shù),其中還包括參數(shù)的類(lèi)型。In表示是輸入?yún)?shù),out表示輸出參數(shù)。BasicSet+AddArea(in areaname : string) : bool+AddCity(in cityname : string) : bool+GetAreaID(in areaname : string, out areaid : int) : int+AddGrade(in gradename : string) : bool+AddState(in statename : string) : bool+AddType(in typename : string) : b
12、ool+AddDepart(in departname : string) : bool圖15-6基礎(chǔ)配置類(lèi)靜態(tài)類(lèi)圖(2)客戶(hù)管理模塊:主要包括兩大功能,客戶(hù)的管理和聯(lián)系人的管理??紤]到客戶(hù)和聯(lián)系人的屬性比較多, 采用實(shí)體設(shè)計(jì)的模式完成其設(shè)計(jì)。 兩大功能分別包含兩個(gè)類(lèi): 實(shí)體類(lèi) 和實(shí)體方法類(lèi)。客戶(hù)信息實(shí)體類(lèi),如圖 15-7所示??蛻?hù)實(shí)體方法類(lèi),如圖 15-8所示。聯(lián)系 人信息實(shí)體類(lèi),如圖15-9所示。聯(lián)系人實(shí)體方法類(lèi),如圖 15-10所示。UserInfoEntity-UserName +SoftVersion : string +UserGrade : string +UserState :
13、 string +UserType : string +City : string +Address : string +Linkman : string +Phone : string +Fax : string +QQ : string +Mail : string +PeopleAmount : int圖15-7客戶(hù)信息實(shí)體類(lèi)圖UserInfoDA+InsertUser(in user : UserInfoEntity) : bool -GetCityID(in cityname : string, out cityid : int) : int -GetStateID(in state
14、name : string, out stateid : int) : int -GetTypeID(in typename : string, out typeid : int) : int -GetStateID(in statename : string, out stateid : int) : int -GetParameters() : sqlparameter圖15-8客戶(hù)信息實(shí)體方法類(lèi)圖LinkmanEntity +Name : string +Sex +Phone : string +QQ : string +Mail : string +Birthday +Like : s
15、tring +CompanyName : string +Note : string圖15-9聯(lián)系人信息實(shí)體類(lèi)圖LinkmanDA+InsertLinkman(in linkman : LinkmanEntity) : bool-GetParameters() : sqlparameter+GetBirthMan() : datetime+GetCompanyID(in companyname : string, out companyid : int) : int圖15-10聯(lián)系人信息實(shí)體方法類(lèi)圖注意:實(shí)體方法類(lèi)實(shí)現(xiàn)了對(duì)實(shí)體類(lèi)的調(diào)用。(3)成員管理模塊:管理內(nèi)部員工,主要包括員工的添加和員工
16、所在部門(mén)的設(shè)置。使用實(shí)體設(shè)計(jì)模式實(shí)現(xiàn)其功能。成員信息實(shí)體類(lèi),參考類(lèi)圖15-11。成員信息實(shí)體方法類(lèi)圖,參考圖15-12EmployeeEntity +Name : string +Phone : string +Sex : string +Mail : string +Depart : string +Birthday : DateTime +Note : string圖15-11員工信息實(shí)體方法類(lèi)圖EmployeeDA+InsertEmployee(in employee : EmployeeEntity) : bool +GetDepartID(in departname : string
17、, out departid : int) : int +GetParameters() : SqlParameter圖15-12員工信息實(shí)體方法類(lèi)圖(4)客戶(hù)服務(wù)管理模塊:主要包括的方法有添加投訴、登記需求、簽訂合同和登記實(shí)施項(xiàng)目等,還有日志管理、任務(wù)管理和聯(lián)系記錄管理3個(gè)大的功能。為了減少代碼冗余,3個(gè)功能用實(shí)體類(lèi)設(shè)計(jì)模式,而其他4個(gè)方法統(tǒng)一放在一個(gè)客戶(hù)服務(wù)操作類(lèi)中。受版面限制,本模塊的所有類(lèi)圖設(shè)計(jì),請(qǐng)參考隨書(shū)光盤(pán)。類(lèi)圖設(shè)計(jì)完畢后,準(zhǔn)備進(jìn)行系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)。1.1.1 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)主要考慮如何以最簡(jiǎn)單的關(guān)系存儲(chǔ)數(shù)據(jù)信息,而且數(shù)據(jù)表之間的關(guān)聯(lián)必須正確的體現(xiàn)。1.1.2 數(shù)據(jù)庫(kù)的表信息
18、根據(jù)需求列表和功能設(shè)計(jì),將需要的信息分類(lèi), 保存在不同的表中。 下面分別介紹這些表。(1)區(qū)域表:主要內(nèi)容是區(qū)域名稱(chēng)。表結(jié)構(gòu)如表15-1所示。表15-1 區(qū)域表(Area )信息AreaIDint(自增長(zhǎng)列)區(qū)域IDAreaNamenvarchar(20)區(qū)域名稱(chēng)(2)城市表:包括城市名稱(chēng)和所屬區(qū)域的ID。該表與區(qū)域表相關(guān)聯(lián),結(jié)構(gòu)如表 15-2所示,其中PK表示主鍵,F(xiàn)K表示外鍵。表15-2 城市表(City)信息CityIDint(自增長(zhǎng)列)城市IDAreaIDint區(qū)域IDCityNamenvarchar(20)城市名稱(chēng)(3)客戶(hù)等級(jí)表:主要是區(qū)別客戶(hù)是否與公司存在合同關(guān)系,或是否正準(zhǔn)備與
19、公司簽 訂合同等。目前主要有三個(gè)級(jí)別:潛在、意向、有效。結(jié)構(gòu)如表15-3所示。表15-3客戶(hù)等級(jí)表(UserGrade )信息GradeIDint(自增長(zhǎng)列)等級(jí)IDGradeNamenvarchar(20)等級(jí)名稱(chēng)(4)客戶(hù)業(yè)務(wù)類(lèi)型表:主要是列出客戶(hù)的經(jīng)營(yíng)范圍,所屬行業(yè)。結(jié)構(gòu)如表15-4所示。表15-4 客戶(hù)業(yè)務(wù)類(lèi)型表(UserType )信息TypeIDint(自增長(zhǎng)列)類(lèi)型IDTypeNamenvarchar(20)類(lèi)型名稱(chēng)(5)客戶(hù)狀態(tài)表:一般針對(duì)客戶(hù)等級(jí)為意向的用戶(hù)群。主要狀態(tài)有跟進(jìn)和簽約。結(jié)構(gòu) 如表15-5所示。表15-5 客戶(hù)狀態(tài)表(UserState )信息StateIDint
20、(自增長(zhǎng)列)狀態(tài)IDStateNamenvarchar(20)狀態(tài)名稱(chēng)(6)部門(mén)表:列出公司的主要組織結(jié)構(gòu)名稱(chēng),結(jié)構(gòu)如表15-6所示。表15-6 部門(mén)表(Department )信息DepartIDint(自增長(zhǎng)列)部門(mén)IDDepartNamenvarchar(20)部門(mén)名稱(chēng)(7)客戶(hù)資料表:詳細(xì)描述用戶(hù)信息的表。該表與多個(gè)基礎(chǔ)設(shè)置表有關(guān)聯(lián),結(jié)構(gòu)如表 15-7所示。表15-7 客戶(hù)資料表(UserInfo )信息UserIDint(自增長(zhǎng)列)客戶(hù)IDCityIDint城市IDGradeIDint客戶(hù)等級(jí)IDTypeIDint客戶(hù)業(yè)務(wù)類(lèi)型IDStateIDint客戶(hù)犬態(tài)IDUserNamenva
21、rchar(20)客戶(hù)名稱(chēng)UserAddressnvarchar(100)客戶(hù)聯(lián)系地址SoftVersionnvarchar(50)所用軟件版本UserLinkmannvarchar(20)客戶(hù)的主要聯(lián)系人UserPhonenvarchar(20)客戶(hù)的聯(lián)系電話(huà)Emailnvarchar(20)郵箱QQnvarchar(20)QQ號(hào)Faxnvarchar(20)傳真PeopleAmountint公司人員規(guī)模(8)聯(lián)系人表:與公司有關(guān)的人的詳細(xì)資料,結(jié)構(gòu)如表 15-8所示。聯(lián)系人通過(guò) UserID 與用戶(hù)資料表進(jìn)行關(guān)聯(lián),表示此聯(lián)系人屬于公司的客戶(hù)。 為了提高數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)速度,此處 用bit類(lèi)型表
22、示性別,0表示男,1表示女。Bit類(lèi)型有且只有這兩個(gè)值。表15-8 聯(lián)系人表(Linkman )信息LinkmanIDint(自增長(zhǎng)列)聯(lián)系人IDUserIDint聯(lián)系人所屬公司LinkmanNamenvarchar(20)聯(lián)系人名稱(chēng)LinkmanPhonenvarchar(20)電話(huà)LinkmanEmailnvarchar(20)郵箱LinkmanQQnvarchar(20)QQ號(hào)LinkmanBirthdaydatetime聯(lián)系人的生日LinkmanLikenvarchar(50)聯(lián)系人的業(yè)務(wù)愛(ài)好LinkmanSexbit性別Notenvarchar(50)備注(9)員工資料表:包括公司所
23、有雇員的信息,結(jié)構(gòu)如表15-9所示。通過(guò) DepartID與部門(mén)表關(guān)聯(lián)。表15-9員工資料表(EmployeeInfo )信息EmployeeIDint(自增長(zhǎng)列)員工IDDepartIDint員工所屬部門(mén)EmployeeNamenvarchar(20)聯(lián)系人名稱(chēng)EmployeePhonenvarchar(20)電話(huà)EmployeeEmailnvarchar(20)郵箱EmployeeBirthdaydatetime聯(lián)系人的生日EmployeeSexbit性別Notenvarchar(50)備注(10)工作日志表:包含所有員工登記的工作日志記錄。結(jié)構(gòu)如表 15-10所示。表15-10 工作日志
24、表(WorkLog )信息LogIDint(自增長(zhǎng)列)日志IDEmployeeIDint人員IDLogTitlenvarchar(20)日志主題LogContentnvarchar(100)日志內(nèi)容(11)聯(lián)系記錄表:登記銷(xiāo)售人員每天的工作情況,主要記錄聯(lián)系客戶(hù)的時(shí)間和內(nèi)容。 結(jié)構(gòu)如表15-11所示。表15-11 工作日志表(LinkRecord )信息LinkRecordIDint(自增長(zhǎng)列)日志IDEmployeeIDint人員IDUserIDint客戶(hù)IDLinkDatedatetime聯(lián)系時(shí)間LinkNotenvarchar(100)聯(lián)系內(nèi)容摘要(12)計(jì)劃任務(wù):針對(duì)實(shí)施人員制定的一個(gè)
25、計(jì)劃安排表,結(jié)構(gòu)如表15-12所示。表15-12 計(jì)劃任務(wù)表(Task)信息TaskIDint(自增長(zhǎng)列)任務(wù)IDEmployeeIDint人員IDUserIDint客戶(hù)IDTaskTimenvarchar(20)任務(wù)主題TaskBiginDatedatetime任務(wù)開(kāi)始日期TaskEndDatedatetime任務(wù)結(jié)束日期TaskNotenvarchar(100)任務(wù)內(nèi)容摘要(13)投訴處理表:顯示所有的投訴信息和處理意見(jiàn),結(jié)構(gòu)如表15-13所示。表15-13 投訴處理表(Notion )信息NotionIDint(自增長(zhǎng)列)投訴IDEmployeeIDint處理人員IDUserIDint投
26、訴客戶(hù)IDNotionContentnvarchar(100)投訴內(nèi)容HandleContentnvarchar(100)處理意見(jiàn)NotionDatedatetime投訴日期HandleDatedatetime處理日期(14)需求處理表:顯示用戶(hù)的新需求和開(kāi)發(fā)人員給予的處理意見(jiàn),結(jié)構(gòu)如表 15-14所示。表15-14 需求處理表(Requirement )信息RequirementIDint(自增長(zhǎng)列)需求IDEmployeeIDint處理人員IDUserIDint需求客戶(hù)IDRequirementContentnvarchar(100)需求內(nèi)容HandleContentnvarchar(10
27、0)處理意見(jiàn)RequirementDatedatetime需求登記日期HandleDatedatetime處理日期(15)實(shí)施表:記錄實(shí)施人員每次的實(shí)施情況,結(jié)構(gòu)如表15-15所示。表15-15 實(shí)施表(Implement )信息ImplementIDint(自增長(zhǎng)列)實(shí)施IDEmployeeIDint實(shí)施人員IDUserIDint被實(shí)施客戶(hù)IDSoftVersionnvarchar(20)實(shí)施軟件的版本ImplementBiginDatedatetime實(shí)施開(kāi)始日期ImplementEndDatedatetime實(shí)施結(jié)束日期ImplementSumUpnvarchar(100)實(shí)施總結(jié)Not
28、envarchar(100)備注(16)合同表:管理與用戶(hù)之間的合同,主要用于合同到期時(shí)的提醒功能,結(jié)構(gòu)如表 15-16所示。表15-13 合同表(Bargain )信息BargainIDint(自增長(zhǎng)列)任務(wù)IDEmployeeIDint簽合同人員IDUserIDint合同簽訂對(duì)象IDBargainBiginDatedatetime合同開(kāi)始日期BargainEndDatedatetime合同結(jié)束日期BargainNotenvarchar(100)合同內(nèi)容摘要說(shuō)明:在數(shù)據(jù)庫(kù)的設(shè)計(jì)中,類(lèi)似于區(qū)域設(shè)置、客戶(hù)狀態(tài)設(shè)置等這種表,被稱(chēng)為字典表,表示預(yù)先設(shè)置好的各種選項(xiàng)。1.1.3 數(shù)據(jù)庫(kù)的表關(guān)系數(shù)據(jù)表之
29、間的關(guān)系,通過(guò)ID來(lái)關(guān)聯(lián),因?yàn)槊總€(gè)表的ID都具有唯一性。主鍵表示本表內(nèi)部的唯一鍵值,外鍵表示本表與其他表之間的關(guān)聯(lián)ID。根據(jù)功能設(shè)計(jì)和表結(jié)構(gòu),現(xiàn)在分析這些表之間的關(guān)聯(lián)。(1)本實(shí)例是客戶(hù)關(guān)系管理系統(tǒng),所以客戶(hù)表幾乎與所有的表都有關(guān)系,都通過(guò)主鍵UserID與其他表關(guān)聯(lián)。圖15-13所示的是客戶(hù)表通過(guò) UserID 一個(gè)名為UserID的字段,表示外鍵。相關(guān)聯(lián)的表。在其他表中都有TaskIp e 1二ITserlnf 9Bargainloti onMet ion ID工 E 1>EJserlJErrw 1”*噌 ID-IDCity I。 GriicID SUtelD Ijie IS JeD
30、am。(Ts ct! &舊 CEE Sc* ftVe.r£i05 EJ= eri ini Us uhFEqdlh ItailQQ FaxFcqj 1 ulgutLinkRecordluLkfijCCQi-dlSET= «IHRequii-eBeiLtF.taniriCEUHt IBImp Joy c e ID圖15-13 通過(guò)UserID關(guān)聯(lián)的表(2)客戶(hù)表中的資料非常詳細(xì),但并不是所有內(nèi)容都必須登記在其中的,為了減少數(shù)據(jù)冗余,并且維護(hù)方便,設(shè)計(jì)時(shí)將城市、客戶(hù)等級(jí)、客戶(hù)業(yè)務(wù)類(lèi)型和客戶(hù)狀態(tài)4個(gè)類(lèi)型單獨(dú)列出來(lái),并分別為其設(shè)計(jì)一個(gè)表,用于存儲(chǔ)信息。并將這4個(gè)表的主鍵保存在
31、客戶(hù)表中,作為客戶(hù)表的外鍵。其關(guān)系如圖15-14所示。IfEerlAfaWserTypeTjiellTjielTaimcUscrStat ftSUtelJS ta. telTaEEVe e r Gt aide七ISGt 3- delTarneCitrlJ GraddfilDTtbsIJUs。工ITam???。工”。Hr0方方S«f tVcts len eri iulmn(Te。工ItiilQQ FixFe4l 1 clnvimt圖15-14客戶(hù)表的外鍵關(guān)聯(lián)圖(3)在數(shù)據(jù)庫(kù)中還有一個(gè)很重要的表:?jiǎn)T工表,從功能模塊圖中可以發(fā)現(xiàn),每個(gè)操作 功能都有員工的參與,根據(jù)模塊圖,設(shè)計(jì)員工表與其他表之
32、間的關(guān)系,如圖 15-15所示。所 有關(guān)聯(lián)表的外鍵都是 EmployeelD 。Kquir«Bei3LtBffinir emeu til a Imp lajeellUser19Bro. ui r £m»tCciLl IfTTo lc<7 ecIDUm IDSq ftVersion0Epl4 川 紿工口 £。Inn L4yeelD BtVMjrtID 工呷 lOTtuM-mc;IE La?Imp Loy e elik il Ee l4ccBirthda He Eo t erkLoUserIDEair ga 】ilB t g3:i 1Sara milL
33、arTitleLcBECOD.t£lltlotionIToti£>ILl)Te loTdd IDDe»IIITotionCojit entTTv El 由 1I TI 十Tl tTaskIaL=kIHIlTackTitleTai仁上已f Li uTl 寸¥圖15-15員工表的外鍵關(guān)聯(lián)圖除了這些主要的關(guān)系之外,數(shù)據(jù)庫(kù)中還有一些小關(guān)系,例如區(qū)域和城市之間的關(guān)聯(lián),部 門(mén)與員工之間的關(guān)聯(lián)等,在此不再詳細(xì)描述,讀者可參考隨書(shū)光盤(pán)。1.1.4 數(shù)據(jù)庫(kù)的操作類(lèi)每一個(gè)軟件系統(tǒng),只要用到數(shù)據(jù)庫(kù),都必須包括數(shù)據(jù)操作類(lèi),本例所有數(shù)據(jù)操作方法, 都使用Microsoft提
34、供的數(shù)據(jù)訪(fǎng)問(wèn)助手 SqlHelper。SqlHelper是一個(gè)數(shù)據(jù)操作類(lèi),主要包括三類(lèi)方法:ExcuteNonQuery、ExcuteScalar和ExcuteReader。雖然只有三類(lèi)方法,但通過(guò)方法的重載,此類(lèi)共提供6個(gè)操作數(shù)據(jù)的方法。通過(guò)這些方法,可以簡(jiǎn)化邏輯層與數(shù)據(jù)層之間的交互,方便了程序的開(kāi)發(fā)。此類(lèi)的所有代碼請(qǐng)參考清單15-1。代碼清單 15-1數(shù)據(jù)操作類(lèi) SqlHelper 的代碼using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;u
35、sing System.Collections;using System.Data.SqlClient;/ <summary>/ 數(shù)據(jù)庫(kù)的通用訪(fǎng)問(wèn)代碼/ 此類(lèi)為抽象類(lèi),不允許實(shí)例化,在應(yīng)用時(shí)直接調(diào)用即可/ </summary>public abstract class SqlHelper/獲取數(shù)據(jù)庫(kù)連接字符串,其屬于靜態(tài)變量且只讀,項(xiàng)目中所有文檔可以直接使用,但不能修改public static readonly string ConnectionStringLocalTransaction =ConfigurationManager.ConnectionStrings
36、"SoftCRMConnectionString".ConnectionString;/ 哈希表用來(lái)存儲(chǔ)緩存的參數(shù)信息,哈希表可以存儲(chǔ)任意類(lèi)型的參數(shù)。private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable();/ <summary>/執(zhí)行一個(gè)不需要返回值的SqlCommand 命令,通過(guò)指定專(zhuān)用的連接字符串。/ 使用參數(shù)數(shù)組形式提供參數(shù)列表/ </summary>/ <remarks>/ 使用示例:/ int result = ExecuteNon
37、Query(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24);/ </remarks>/ <param name="connectionString"> 一個(gè)有效的數(shù)據(jù)庫(kù)連接字符串</param>/ <param name="commandType">SqlCommand 命令類(lèi)型(存儲(chǔ)過(guò)程,T-SQL 語(yǔ)句,等等。 )</param&
38、gt;/ <param name="commandText"> 存儲(chǔ)過(guò)程的名字或者T-SQL 語(yǔ)句 </param>/ <param name="commandParameters"> 以數(shù)組形式提供 SqlCommand 命令中用到的參數(shù)列表</param>/ <returns> 返回一個(gè)數(shù)值表示此SqlCommand 命令執(zhí)行后影響的行數(shù)</returns>public static int ExecuteNonQuery(string connectionString, Com
39、mandType cmdType, string cmdText, params SqlParameter commandParameters)SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(connectionString)/通過(guò)PrePareCommand 方法將參數(shù)逐個(gè)加入到SqlCommand 的參數(shù)集合中PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);int val = cmd.Exe
40、cuteNonQuery();/清空SqlCommand 中的參數(shù)列表cmd.Parameters.Clear();return val;/ <summary>/執(zhí)行一條不返回結(jié)果的SqlCommand ,通過(guò)一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)連接/ 使用參數(shù)數(shù)組提供參數(shù)/ </summary>/ <remarks>/ 使用示例:/ int result = ExecuteNonQuery(conn,CommandType.StoredProcedure,"PublishOrders", new SqlParameter("prodid&qu
41、ot;, 24);/ </remarks>/ <param name="conn"> 一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)連接</param>/ <param name="commandType">SqlCommand 命令類(lèi)型(存儲(chǔ)過(guò)程,T-SQL 語(yǔ)句,等等。 )</param>/ <param name="commandText"> 存儲(chǔ)過(guò)程的名字或者T-SQL 語(yǔ)句 </param>/ <param name="commandParameters&
42、quot;> 以數(shù)組形式提供 SqlCommand 命令中用到的參數(shù)列表</param>/ <returns> 返回一個(gè)數(shù)值表示此SqlCommand 命令執(zhí)行后影響的行數(shù)</returns>public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter commandParameters)SqlCommand cmd = new SqlCommand();PrepareCommand
43、(cmd, connection, null, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;/ <summary>/執(zhí)行一條不返回結(jié)果的SqlCommand ,通過(guò)一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)事物處理/ 使用參數(shù)數(shù)組提供參數(shù)/ </summary>/ <remarks>/ 使用示例:/ int result = ExecuteNonQuery(trans,CommandType.StoredProcedur
44、e,"PublishOrders", new SqlParameter("prodid", 24);/ </remarks>/ <param name="trans"> 一個(gè)存在的sql 事物處理</param>/ <param name="commandType">SqlCommand 命令類(lèi)型(存儲(chǔ)過(guò)程,T-SQL 語(yǔ)句,等等。 )</param>/ <param name="commandText"> 存儲(chǔ)過(guò)程的名字或
45、者T-SQL 語(yǔ)句 </param>/ <param name="commandParameters"> 以數(shù)組形式提供 SqlCommand 命令中用到的參數(shù)列表</param>/ <returns> 返回一個(gè)數(shù)值表示此SqlCommand 命令執(zhí)行后影響的行數(shù)</returns>public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter comma
46、ndParameters)SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;/ <summary>/ 執(zhí)行一條返回結(jié)果集的SqlCommand 命令,通過(guò)專(zhuān)用的連接字符串。/ 使用參數(shù)數(shù)組提供參數(shù)/ </summary>/ <remarks>/ 使用
47、示例:/ SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24);/ </remarks>/ <param name="connectionString"> 一個(gè)有效的數(shù)據(jù)庫(kù)連接字符串</param>/ <param name="commandType">SqlCommand 命令類(lèi)型
48、(存儲(chǔ)過(guò)程,T-SQL 語(yǔ)句,等等。 )</param>/ <param name="commandText"> 存儲(chǔ)過(guò)程的名字或者T-SQL 語(yǔ)句 </param>/ <param name="commandParameters"> 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表</param>/ <returns> 返回一個(gè)包含結(jié)果的SqlDataReader</returns>public static SqlDataReader ExecuteRea
49、der(string connectionString, CommandType cmdType, string cmdText, params SqlParameter commandParameters)SqlCommand cmd = new SqlCommand();SqlConnection conn = new SqlConnection(connectionString);/ 在這里使用try/catch 處理是因?yàn)?,如果方法出現(xiàn)異常,則SqlDataReader 就不存在。CommandBehavior.CloseConnection的語(yǔ)句就不會(huì)執(zhí)行,觸發(fā)的異常由catch捕獲
50、。/關(guān)閉數(shù)據(jù)庫(kù)連接,并通過(guò)throw 再次引發(fā)捕捉到的異常。try PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);SqlDataReaderrdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return rdr; catchconn.Close(); throw;/ <summary>/ 執(zhí)行一條返回第一條記錄第一列的SqlCommand 命令, 通過(guò)專(zhuān)用的連接字符串。/ 使用參數(shù)數(shù)組提
51、供參數(shù)/ </summary>/ <remarks>/ 使用示例:/ Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("prodid", 24);/ </remarks>/ <param name="connectionString"> 一個(gè)有效的數(shù)據(jù)庫(kù)連接字符串</param>/ <param name="
52、;commandType">SqlCommand 命令類(lèi)型(存儲(chǔ)過(guò)程,T-SQL 語(yǔ)句,等等。 )</param>/ <param name="commandText"> 存儲(chǔ)過(guò)程的名字或者T-SQL 語(yǔ)句 </param>/ <param name="commandParameters"> 以數(shù)組形式提供 SqlCommand 命令中用到的參數(shù)列表</param>/ <returns> 返回一個(gè)object 類(lèi)型的數(shù)據(jù),可以通過(guò)Convert.ToType 方法轉(zhuǎn)換
53、類(lèi)型</returns>public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter commandParameters)SqlCommand cmd = new SqlCommand();using (SqlConnection connection = new SqlConnection(connectionString)PrepareCommand(cmd, connection, null, cmdTyp
54、e, cmdText, commandParameters);object val = cmd.ExecuteScalar();cmd.Parameters.Clear();return val;/ <summary>/ 執(zhí)行返回第一條記錄第一列的SqlCommand 命令, 通過(guò)已經(jīng)存在的數(shù)據(jù)庫(kù)連接。/ 使用參數(shù)數(shù)組提供參數(shù)/ </summary>/ <remarks>/ 使用示例:/ Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrder
55、s", new SqlParameter("prodid", 24);/ </remarks>/ <param name="conn"> 一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)連接</param>/ <param name="commandType">SqlCommand 命令類(lèi)型(存儲(chǔ)過(guò)程,T-SQL 語(yǔ)句,等等。 )</param>/ <param name="commandText"> 存儲(chǔ)過(guò)程的名字或者T-SQL 語(yǔ)句 </param&g
56、t;/ <param name="commandParameters"> 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表</param>/ <returns> 返回一個(gè)object 類(lèi)型的數(shù)據(jù),可以通過(guò)Convert.ToType 方法轉(zhuǎn)換類(lèi)型</returns>public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter commandPa
57、rameters)SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);object val = cmd.ExecuteScalar();cmd.Parameters.Clear();return val;/ <summary>/ 緩存參數(shù)數(shù)組/ </summary>/ <param name="cacheKey"> 參數(shù)緩存的鍵值</param>/ <param name="cmdParms"> 被緩存的參數(shù)列表</param>public static void CacheParameters(string cach
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 游泳青少年大賽企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書(shū)
- 特殊教育視頻教程行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書(shū)
- 醫(yī)療健康建筑設(shè)計(jì)及施工企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書(shū)
- 用戶(hù)體驗(yàn)研究與設(shè)計(jì)實(shí)驗(yàn)室行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書(shū)
- 民間藝術(shù)拍賣(mài)會(huì)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書(shū)
- 注意力集中訓(xùn)練器行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書(shū)
- 環(huán)保木質(zhì)吉他生產(chǎn)線(xiàn)升級(jí)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書(shū)
- 媒體數(shù)據(jù)分析訓(xùn)練企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書(shū)
- 智能變色復(fù)合材料行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書(shū)
- 在線(xiàn)旅游平臺(tái)的廣告創(chuàng)意與投放策略
- 健康證申請(qǐng)證明(通用)
- 中國(guó)中化集團(tuán)收購(gòu)加拿大鉀肥公司的商務(wù)談判計(jì)劃書(shū)
- GB∕T 10054.1-2021 貨用施工升降機(jī) 第1部分:運(yùn)載裝置可進(jìn)人的升降機(jī)
- 天然氣管線(xiàn)施工無(wú)損檢測(cè)方案
- 生物安全委員會(huì)及組織架構(gòu)
- 設(shè)計(jì)學(xué)概論設(shè)計(jì)批評(píng)課件
- YC∕T 266-2008 煙用包裝膜
- 員工領(lǐng)用勞保用品表格
- 中油即時(shí)通信安裝手冊(cè)(二廠(chǎng))
- 電廠(chǎng)kks編碼1
- 西北工業(yè)大學(xué)臺(tái)灣交換生入學(xué)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論