完整版客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì)_第1頁(yè)
完整版客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì)_第2頁(yè)
完整版客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì)_第3頁(yè)
完整版客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì)_第4頁(yè)
完整版客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ù)之間建立15-1所示。一種實(shí)時(shí)的交互管理系統(tǒng)。本章主要講解客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì),設(shè)計(jì)流程如圖客戶(hù)關(guān)系管理系統(tǒng)設(shè)計(jì)流程圖15.115-1客戶(hù)關(guān)系管理系統(tǒng)設(shè)計(jì)流程CRM的分類(lèi)和價(jià)值體現(xiàn)15.1.1 CRM的分類(lèi)CRM系統(tǒng)有三種類(lèi)型:操作型、分析型和協(xié)同型。(1)操作型CRM :主要方便與客戶(hù)的交流,

2、簡(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ā)生的事情。CRM其實(shí)可以(3)協(xié)同型CRM :整合各種職能,協(xié)調(diào)各個(gè)部門(mén)之間的聯(lián)系。協(xié)同型 算是輔助型軟件,主要實(shí)現(xiàn)的是數(shù)據(jù)共享和業(yè)務(wù)協(xié)同。CRM ;第二層分析型 CRM ;第CRM軟件系統(tǒng)主要表現(xiàn)

3、在這三個(gè)層面:第一層操作型 三層協(xié)同型CRM。15.1.2 CRM 的價(jià)值體現(xiàn)CRM 的價(jià)值主要體現(xiàn)在:(2)(3)(4) 化的指導(dǎo)。(5)(6)企業(yè)根據(jù) CRM 的分類(lèi)和價(jià)值體現(xiàn)體現(xiàn),選擇合適的客戶(hù)關(guān)系管理軟件。(1)通過(guò)對(duì)用戶(hù)信息資源的整合,在企業(yè)內(nèi)部達(dá)到資源共享,從而為客戶(hù)提供更快速 周到的優(yōu)質(zhì)服務(wù),吸引和保持更多的客戶(hù)。通過(guò)對(duì)業(yè)務(wù)流程的重新設(shè)計(jì),更有效地管理客戶(hù)關(guān)系,降低企業(yè)成本。 通過(guò)滿(mǎn)足客戶(hù)的個(gè)性需求,提高客戶(hù)的忠誠(chéng)度和保有率。 根據(jù)對(duì)客戶(hù)特征、購(gòu)買(mǎi)行為和價(jià)值取向的深入分析,為企業(yè)的決策提供科學(xué)、量客戶(hù)及其所有關(guān)聯(lián)信息,均得到合理的分類(lèi)和管理。分析競(jìng)爭(zhēng)對(duì)手,改善客戶(hù)關(guān)系,增加企業(yè)收

4、益。15.2 企業(yè)的 CRM 需求分析一個(gè)軟件的成功離不開(kāi)一個(gè)好的需求分析, 其處于軟件開(kāi)發(fā)的初期階段, 直接影響到后 期的模塊設(shè)計(jì)。本例的客戶(hù)關(guān)系管理系統(tǒng),是為中小型軟件公司定制的一款操作型 合自身業(yè)務(wù)特點(diǎn),提出了下列需求:(1)詳細(xì)的客戶(hù)資料庫(kù),并能實(shí)現(xiàn)按照不同信息進(jìn)行查詢(xún),允許添加、修改。(2)客戶(hù)按照不同地域劃分。地域主要分為5 大區(qū)域:華東、華北、東北、西北、華南,每個(gè)區(qū)域下面包含幾個(gè)主要的一級(jí)城市??蛻?hù)分為三種狀態(tài):已簽約、跟進(jìn)、終止合同。 客戶(hù)分為不同的等級(jí):有效客戶(hù)、潛在客戶(hù)、意向客戶(hù)。 公司內(nèi)部部門(mén)列表,并能列出部門(mén)內(nèi)部的人員。 公司競(jìng)爭(zhēng)對(duì)手資料庫(kù),允許實(shí)現(xiàn)查找、添加等功能。

5、 允許公司成員隨時(shí)都能查看公告。允許任何人發(fā)布公告信息。 公司成員根據(jù)每天的工作情況填寫(xiě)工作日志。 銷(xiāo)售人員每天將聯(lián)系的用戶(hù)信息登記到聯(lián)系記錄表。CRM 。軟件公司結(jié)15.2.1 企業(yè)的需求列表(3)(4)(5)(6)(7)(8)(9)(10)實(shí)施人員每周提交自己的工作任務(wù)和計(jì)劃。(11)專(zhuān)門(mén)設(shè)立投訴功能,處理用戶(hù)的投訴信息,并有相應(yī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)系人和電話要求是客戶(hù)公司信息,可單獨(dú)建立聯(lián)系人資料庫(kù), 記錄

6、所有與公司有關(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ì)議。(1)(2)(3)(4)(5)(6)(7) 以上只是列出了需求分析的一些比較淺顯的內(nèi)容, 的斟酌,列出所有的疑問(wèn)點(diǎn),否則出現(xiàn)漏洞, 工作成本。仔細(xì)分析需求列表中的每一條, 不明白的地方,要提出來(lái)大家分析,并做會(huì)議記錄,由 分析人員去跟用戶(hù)確認(rèn)。下面列表體現(xiàn)分析時(shí)的不確定因素: 詳細(xì)的客戶(hù)資料。詳細(xì)到什么程度,主要包括客戶(hù)的哪些信息?5 大

7、區(qū)域是固定在數(shù)據(jù)庫(kù)中的信息,還是允許用戶(hù)自定義。 發(fā)布公告信息的需求是否與當(dāng)前 OA 系統(tǒng)沖突。 是否由專(zhuān)人處理客戶(hù)的投訴信息。權(quán)限的主要?jiǎng)澐忠罁?jù)是什么? 與其他現(xiàn)存系統(tǒng)是否掛鉤? 數(shù)據(jù)庫(kù)的選擇標(biāo)準(zhǔn),是否根據(jù)已有硬件系統(tǒng)決定。引起用戶(hù)不滿(mǎn)或者程序返工, 都將提高軟件的在實(shí)際業(yè)務(wù)中, 每一條需求都要仔細(xì)15.2.3 體驗(yàn)企業(yè)業(yè)務(wù)流程并確定最終需求根據(jù)需求分析會(huì)議討論的內(nèi)容和筆記, 分析人員親自到用戶(hù)處, 親身體驗(yàn)企業(yè)的工作流 程,與企業(yè)負(fù)責(zé)人員詳細(xì)討論每一條需求,并最終確定需求,與企業(yè)簽定合同。CRM 系統(tǒng)需求的最終修改如下:(2)(3)(4)(5)(6)(7) 需求列表中的其他內(nèi)容不變。 確定

8、需求后,開(kāi)始設(shè)計(jì)系統(tǒng)的模塊。(1)詳細(xì)的客戶(hù)資料,包括客戶(hù)名稱(chēng)、使用的軟件版本、客戶(hù)地址、客戶(hù)的行業(yè)類(lèi)型、 電話、主要聯(lián)系人和客戶(hù)所在區(qū)域。5 大區(qū)域由用戶(hù)自己添加,并可實(shí)現(xiàn)編輯。CRM 中不實(shí)現(xiàn)公告管理功能, OA 系統(tǒng)已經(jīng)實(shí)現(xiàn)。 投訴信息的處理,由投訴部人員決定 暫時(shí)不實(shí)現(xiàn)權(quán)限管理。與其他系統(tǒng)無(wú)任何聯(lián)系。 數(shù)據(jù)庫(kù)使用 SQL Server 系統(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ù)管理模塊、員工管理模塊和

9、客戶(hù)服務(wù)管理模塊。下面具體介紹這些模塊所包含的內(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所示。客戶(hù)管理模塊組成圖 15-3工作日志、(3)成員管理模塊:主要用于管理公司內(nèi)部的人員。包括人員的基本資料、 任務(wù)計(jì)劃等。該模塊的結(jié)構(gòu)如圖15-4所示。圖15-4 成員管理模塊組成(4)客戶(hù)服務(wù)管理模塊:主要處

10、理一些與客戶(hù)溝通的信息。包括客戶(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)其功能?;A(chǔ)配置模塊的主要功能包括:添加區(qū)域、城市、獲取區(qū) 域ID,添加客戶(hù)等級(jí)、狀態(tài)和業(yè)務(wù)類(lèi)型,添加部門(mén)。為模塊設(shè)計(jì)一個(gè)類(lèi),命名為Basi

11、cSet,圖15-6說(shuō)明了類(lèi)中的方法和方法的參數(shù),其中還包括參數(shù)的類(lèi)型。In表示是輸入?yún)?shù),out表示輸出參數(shù)。BasicSet+AddArea(i n area name : stri ng) : bool +AddCity(i n cit yn ame : stri ng) : bool +GetArealD(i n area name : stri ng, out areaid : int) : int +AddGrade(i n grade name : stri ng) : bool +AddState(i n state name : stri ng) : bool+AddT yp

12、 e(i n typen ame : stri ng) : bool+AddDe part(i n departn ame : stri ng) : 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所示。Userl nfoEn tity-UserName +SoftVersi on : str

13、i ng +UserGrade : stri ng +UserState : stri ng +UserT ype : stri ng +City : stri ng +Address : stri ng +Lin kma n : stri ng +Phone : stri ng +Fax : stri ng +QQ : stri ng +Mail : stri ng +Peop leAmou nt : int圖15-7客戶(hù)信息實(shí)體類(lèi)圖Userl nfoDA+ln sertUser(i n user : UserI nfoEn tity) : bool -GetCityID(i n cit y

14、n ame : stri ng, out cityid : int) : int -GetStateID(in state name : stri ng, out stateid : i nt) : int -GetT yp eID(i n typen ame : stri ng, out typ eid : int) : int -GetStateID(in state name : stri ng, out stateid : i nt) : int -Get Parameters。: sqlp arameter圖15-8客戶(hù)信息實(shí)體方法類(lèi)圖Lin kma nEn tity+Name :

15、stri ng+Sex+Phone : stri ng +QQ : stri ng+Mail : stri ng+Birthday+Like : stri ng+Co mpany Name : stri ng +Note : stri ng圖15-9聯(lián)系人信息實(shí)體類(lèi)圖Lin kma nDA+ln sertL in kma n(i n lin kma n : Lin kma nEn tity) : bool-Get Parameters。: sqlp arameter +GetBirthMa n() : datetime+GetCo mpany ID(i n companyn ame : str

16、i ng, 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)部員工,主要包括員工的添加和員工所在部門(mén)的設(shè)置。使用實(shí)體設(shè)計(jì)模式實(shí)現(xiàn)其功能。成員信息實(shí)體類(lèi),參考類(lèi)圖15-11。成員信息實(shí)體方法類(lèi)圖,參考圖15-12Empio yeeE ntity+Name : stri ng +Phone : stri ng+Sex : stri ng +Mail : stri ng+De part : stri ng +Birthday : DateTime +Note : stri ng圖15-11員工信息

17、實(shí)體方法類(lèi)圖EmpIo yeeDA+ln sertE mpio yee(i n empio yee : Empio yeeE ntity) : bool +GetDe partlD(i n departn ame : stri ng, out dep artid : int) : int +Get Parameters。: Sql Parameter圖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ù)

18、操作類(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ì)。15.4數(shù)據(jù)庫(kù)設(shè)計(jì)而且數(shù)據(jù)表之間的關(guān)聯(lián)必須正數(shù)據(jù)庫(kù)設(shè)計(jì)主要考慮如何以最簡(jiǎn)單的關(guān)系存儲(chǔ)數(shù)據(jù)信息, 確的體現(xiàn)。15.4.1數(shù)據(jù)庫(kù)的表信息根據(jù)需求列表和功能設(shè)計(jì),將需要的信息分類(lèi),保存在不同的表中。 下面分別介紹這些表。(1)區(qū)域表:主要內(nèi)容是區(qū)域名稱(chēng)。表結(jié)構(gòu)如表15-1所示。LinkRecordIDint(自增長(zhǎng)列)I日志ID(2)城市表:包括城市名稱(chēng)和所屬區(qū)域的 所示,其中PK表示主鍵,F(xiàn)K表示外鍵。ID。該表與區(qū)域表相關(guān)聯(lián),結(jié)構(gòu)如表15-2CityIDint(自增長(zhǎng)列)城市IDAreaIDin

19、t區(qū)域IDCityNamenvarchar(20)城市名稱(chēng)表15-2 城市表(City)信息(3)客戶(hù)等級(jí)表:主要是區(qū)別客戶(hù)是否與公司存在合同關(guān)系,或是否正準(zhǔn)備與公司簽 訂合同等。目前主要有三個(gè)級(jí)別:潛在、意向、有效。結(jié)構(gòu)如表15-3所示。GradeIDint(自增長(zhǎng)列)等級(jí)IDGradeNamenvarchar(20)等級(jí)名稱(chēng)表15-3客戶(hù)等級(jí)表(UserGrade )信息(4)客戶(hù)業(yè)務(wù)類(lèi)型表:主要是列出客戶(hù)的經(jīng)營(yíng)范圍,所屬行業(yè)。結(jié)構(gòu)如表15-4所示。Typ eIDint(自增長(zhǎng)列)類(lèi)型IDTypeNamenvarchar(20)類(lèi)型名稱(chēng)表15-4客戶(hù)業(yè)務(wù)類(lèi)型表(UserType )信息(5

20、)客戶(hù)狀態(tài)表:一般針對(duì)客戶(hù)等級(jí)為意向的用戶(hù)群。主要狀態(tài)有跟進(jìn)和簽約。結(jié)構(gòu) 如表15-5所示。StateIDint(自增長(zhǎng)列)狀態(tài)IDStateNamenvarchar(20)狀態(tài)名稱(chēng)表15-5 客戶(hù)狀態(tài)表(UserState )信息(6)部門(mén)表:列出公司的主要組織結(jié)構(gòu)名稱(chēng),結(jié)構(gòu)如表15-6所示。Dep artIDint(自增長(zhǎng)列)部門(mén)IDDep artNamenvarchar(20)部門(mén)名稱(chēng)表15-6 部門(mén)表(Department )信息(7)客戶(hù)資料表:詳細(xì)描述用戶(hù)信息的表。該表與多個(gè)基礎(chǔ)設(shè)置表有關(guān)聯(lián),結(jié)構(gòu)如表15-7所示。表15-1 區(qū)域表(Area )信息AreaIDint(自增長(zhǎng)列)區(qū)

21、域IDAreaNamenvarchar(20)區(qū)域名稱(chēng)UserIDint(自增長(zhǎng)列)客戶(hù)IDCityIDint城市IDGradeIDint客戶(hù)等級(jí)IDTyp eIDint客戶(hù)業(yè)務(wù)類(lèi)型IDStateIDint客戶(hù)狀態(tài)IDUserNamenvarchar(20)客戶(hù)名稱(chēng)UserAddressnvarchar(100)客戶(hù)聯(lián)系地址SoftVersionnvarchar(50)所用軟件版本UserLinkmannvarchar(20)客戶(hù)的主要聯(lián)系人UserP honenvarchar(20)客戶(hù)的聯(lián)系電話Emailnvarchar(20)郵箱QQnvarchar(20)QQ號(hào)Faxnvarchar(

22、20)傳真Peop leAmountint公司人員規(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ù)的訪問(wèn)速度,此處 用bit類(lèi)型表示性別,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)Linkma nP honenvarchar(20)電話LinkmanEmailnvarchar(20)郵箱Linkman

23、QQnvarchar(20)QQ號(hào)LinkmanBirthdaydatetime聯(lián)系人的生日LinkmanLikenvarchar(50)聯(lián)系人的業(yè)務(wù)愛(ài)好LinkmanSexbit性別Notenvarchar(50)備注15-9所示。通過(guò) DepartID 與(9)員工資料表:包括公司所有雇員的信息,結(jié)構(gòu)如表 部門(mén)表關(guān)聯(lián)。表15-9 員工資料表(Em pl oyeeinfo )信息Emp loyeelDint(自增長(zhǎng)列)員工IDDep artIDint員工所屬部門(mén)Empio yeeNamenvarchar(20)聯(lián)系人名稱(chēng)Empio yee Phonenvarchar(20)電話Empio y

24、eeEmailnvarchar(20)郵箱Empio yeeBirthdaydatetime聯(lián)系人的生日Empio yeeSexbit性別Notenvarchar(50)備注15-10所示。(10)工作日志表:包含所有員工登記的工作日志記錄。結(jié)構(gòu)如表表15-10 工作日志表(WorkLog )信息LogIDint(自增長(zhǎng)列)日志IDEmp loyeelDint人員IDLogTitlenvarchar(20)日志主題LogContentnvarchar(100)日志內(nèi)容(11)聯(lián)系記錄表:登記銷(xiāo)售人員每天的工作情況,主要記錄聯(lián)系客戶(hù)的時(shí)間和內(nèi)容。 結(jié)構(gòu)如表15-11所示。表15-11 工作日志表

25、(LinkRecord )信息Emp loyeelDint人員IDUserIDint客戶(hù)IDLinkDatedatetime聯(lián)系時(shí)間LinkNotenvarchar(100)聯(lián)系內(nèi)容摘要15-12所示。(12)計(jì)劃任務(wù):針對(duì)實(shí)施人員制定的一個(gè)計(jì)劃安排表,結(jié)構(gòu)如表表15-12 計(jì)劃任務(wù)表(Task)信息TaskIDint(自增長(zhǎng)列)任務(wù)IDEmp loyeelDint人員IDUserIDint客戶(hù)IDTaskTimenvarchar(20)任務(wù)主題TaskBiginDatedatetime任務(wù)開(kāi)始日期TaskEndDatedatetime任務(wù)結(jié)束日期TaskNotenvarchar(100)任務(wù)

26、內(nèi)容摘要15-13所示。(13)投訴處理表:顯示所有的投訴信息和處理意見(jiàn),結(jié)構(gòu)如表表15-13 投訴處理表(Notion )信息NotionIDint(自增長(zhǎng)列)投訴IDEmp loyeelDint處理人員IDUserIDint投訴客戶(hù)IDNotionContentnvarchar(100)投訴內(nèi)容HandleContentnvarchar(100)處理意見(jiàn)NotionDatedatetime投訴日期HandleDatedatetime處理日期15-14 所(14)需求處理表:顯示用戶(hù)的新需求和開(kāi)發(fā)人員給予的處理意見(jiàn),結(jié)構(gòu)如表示。表15-14 需求處理表(Requirement )信息Requ

27、irementIDint(自增長(zhǎng)列)需求IDEmp loyeelDint處理人員IDUserIDint需求客戶(hù)IDRequirementContentnvarchar(100)需求內(nèi)容HandleContentnvarchar(100)處理意見(jiàn)RequirementDatedatetime需求登記日期HandleDatedatetime處理日期15-15所示。(15)實(shí)施表:記錄實(shí)施人員每次的實(shí)施情況,結(jié)構(gòu)如表表15-15 實(shí)施表(Implement )信息Imp lementIDint(自增長(zhǎng)列)實(shí)施IDEmp loyeelDint實(shí)施人員IDUserIDint被實(shí)施客戶(hù)IDSoftVers

28、ionnvarchar(20)實(shí)施軟件的版本Imp lementBiginDatedatetime實(shí)施開(kāi)始日期ImpI ementEndDatedatetime實(shí)施結(jié)束日期Imp lementSumU pnvarchar(100)實(shí)施總結(jié)Notenvarchar(100)備注(16)合同表:管理與用戶(hù)之間的合同,主要用于合同到期時(shí)的提醒功能,結(jié)構(gòu)如表15-16所示。表15-13 合同表(Bargain )信息BargainlDint(自增長(zhǎng)列)任務(wù)IDEmp loyeelDint簽合同人員IDUserIDint合同簽訂對(duì)象IDBargainBiginDatedatetime合同開(kāi)始日期Barg

29、ainEndDatedatetime合同結(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)。1542數(shù)據(jù)庫(kù)的表關(guān)系數(shù)據(jù)表之間的關(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ò) 一個(gè)名為UserID的字段,表示外鍵。UserID相關(guān)聯(lián)的

30、表。在其他表中都有rkTackI)nInnilo cflB-JCIe3VscrlafQWot i OUEIc tioB-lDI 阿 IymIDJsejIDTimUmfnt ID ImgleTcclSCTEtrll!JectIDCitTlSSta teTJTrBCiDCJscrlTaineJsCTid dfSonVrisUnJECTfbC 11( TlailF&iarca iulP生 IImploT eeU1n=ii)干ILi iLkficcordlEployQscrlDEe quire,ent15-13 通過(guò)UserID關(guān)聯(lián)的表(2)客戶(hù)表中的資料非常詳細(xì),但并不是所有內(nèi)容都必須登記在其中的,

31、為了減少數(shù)據(jù)冗余,并且維護(hù)方便,列出來(lái),并分別為其設(shè)計(jì)一個(gè)表,用于存儲(chǔ)信息。設(shè)計(jì)時(shí)將城市、客戶(hù)等級(jí)、客戶(hù)業(yè)務(wù)類(lèi)型和客戶(hù)狀態(tài)4個(gè)類(lèi)型單獨(dú)并將這4個(gè)表的主鍵保存在客戶(hù)表中,作為客戶(hù)表的外鍵。其關(guān)系如圖15-14所示。User 工 mfoUsM ElI Gt*.蛀Ii*ii丄mmIxca. JIC itylTanied誼CitTll Gride IPStitUDm crliincCseelddr essE4 ftV er=i4n6 tri ini mm n= e 匸ItlilQQFa.I e os 1 chmoiuit圖15-14客戶(hù)表的外鍵關(guān)聯(lián)圖15-15所示。所(3)在數(shù)據(jù)庫(kù)中還有一個(gè)很重要的表

32、:?jiǎn)T工表,從功能模塊圖中可以發(fā)現(xiàn),每個(gè)操作功能都有員工的參與,根據(jù)模塊圖,設(shè)計(jì)員工表與其他表之間的關(guān)系,如圖有關(guān)聯(lián)表的外鍵都是EmployeelD 。Liiik&ecardBe(AKcKireFfH-rlt rrnoloMTD (TisrlDleKircFJn-tCQl EBpIoretlikfoIrrvIDCstrllEn Ifrje tISErnElojeflTifneEn 1 簪 eEnn 1 e fill L1 EiHclojetBiTtliriaEn 1 frj e f 9 f 1 Vo-teIrTQlTte.l業(yè)lorTitlerIrrwHe ex IDTot ioDContent

33、ffm Ti fl T F 廠 ri Ti p Ti 曾TafkllIlHplOTCCll) User IT 皿址Title 匸bs dLinTl圖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)。1543數(shù)據(jù)庫(kù)的操作類(lèi)每一個(gè)軟件系統(tǒng),只要用到數(shù)據(jù)庫(kù),都必須包括數(shù)據(jù)操作類(lèi),本例所有數(shù)據(jù)操作方法,都使用Microsoft提供的數(shù)據(jù)訪問(wèn)助手SqlHelper。ExcuteN on Query、ExcuteScalar 禾口 此類(lèi)共提供6個(gè)操作數(shù)據(jù)的方法。方便了程序的開(kāi)發(fā)。此類(lèi)的所有代碼S

34、qlHeIper是一個(gè)數(shù)據(jù)操作類(lèi),主要包括三類(lèi)方法: ExcuteReader。雖然只有三類(lèi)方法,但通過(guò)方法的重載, 通過(guò)這些方法,可以簡(jiǎn)化邏輯層與數(shù)據(jù)層之間的交互, 請(qǐng)參考清單15-1。代碼清單15-1 數(shù)據(jù)操作類(lèi)SqlHelper的代碼using System;using System.Data;using System.C on figurati on;using System.Web;using System.Web.Security;using System.Collect ions;using System.Data.SqlClient;/ / 數(shù)據(jù)庫(kù)的通用訪問(wèn)代碼/ 此類(lèi)為抽象類(lèi)

35、,不允許實(shí)例化,在應(yīng)用時(shí)直接調(diào)用即可/ public abstract class SqlHelper/獲取數(shù)據(jù)庫(kù)連接字符串, 其屬于靜態(tài)變量且只讀, 項(xiàng)目中所有文檔可以直接使用, 但不能修改public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStringsSoftCRMConnectionString.ConnectionString;/ 哈希表用來(lái)存儲(chǔ)緩存的參數(shù)信息,哈希表可以存儲(chǔ)任意類(lèi)型的參數(shù)。private static Hashtable par

36、mCache = Hashtable.Synchronized(new Hashtable();/ / 執(zhí)行一個(gè)不需要返回值的 SqlCommand 命令,通過(guò)指定專(zhuān)用的連接字符串。/ 使用參數(shù)數(shù)組形式提供參數(shù)列表/ / / 使用示例:/ int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24);/ / 一個(gè)有效的數(shù)據(jù)庫(kù)連接字符串 / SqlCommand 命令類(lèi)型 ( 存儲(chǔ)過(guò)程, T-SQL 語(yǔ)句, 等等。 )/ 存儲(chǔ)過(guò)程的

37、名字或者 T-SQL 語(yǔ)句 / 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表 / 返回一個(gè)數(shù)值表示此 SqlCommand 命令執(zhí)行后影響的行數(shù) public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter commandParameters)SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(conne

38、ctionString) /通過(guò) PrePareCommand 方法將參數(shù)逐個(gè)加入到 SqlCommand 的參數(shù)集合PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery();/清空 SqlCommand 中的參數(shù)列表cmd.Parameters.Clear();return val;/ /執(zhí)行一條不返回結(jié)果的 SqlCommand ,通過(guò)一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)連接/ 使用參數(shù)數(shù)組提供參數(shù)/ / / 使用示例:/ int result = Execut

39、eNonQuery(conn, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24);/ / 一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)連接 / SqlCommand 命令類(lèi)型 ( 存儲(chǔ)過(guò)程, T-SQL 語(yǔ)句, 等等。 )/ 存儲(chǔ)過(guò)程的名字或者 T-SQL 語(yǔ)句 / 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表 / 返回一個(gè)數(shù)值表示此 SqlCommand 命令執(zhí)行后影響的行數(shù) public static int ExecuteNonQuery(SqlConnection connection, Command

40、Type cmdType, string cmdText, params SqlParameter commandParameters)SqlCommand cmd = new SqlCommand();null,cmdType,cmdText,PrepareCommand(cmd, connection, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;/ / 執(zhí)行一條不返回結(jié)果的 SqlCommand ,通過(guò)一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)事物處理 / 使用參數(shù)數(shù)組提供參數(shù)/ /

41、/ 使用示例:ExecuteNonQuery(trans, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24);/ / 一個(gè)存在的 sql 事物處理 / SqlCommand 命令類(lèi)型 ( 存儲(chǔ)過(guò)程, T-SQL 語(yǔ)句, 等等。 )/ 存儲(chǔ)過(guò)程的名字或者 T-SQL 語(yǔ)句 / 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表 / 返回一個(gè)數(shù)值表示此 SqlCommand 命令執(zhí)行后影響的行數(shù) public static int ExecuteNonQuery(SqlTransaction

42、trans, CommandType cmdType, string cmdText, params SqlParameter commandParameters)/ int resultSqlCommand cmd = new SqlCommand();PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;/ / 執(zhí)行一條返回結(jié)果集的 SqlComman

43、d 命令,通過(guò)專(zhuān)用的連接字符串。/ 使用參數(shù)數(shù)組提供參數(shù)/ / / 使用示例:/ SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24);/ / 一個(gè)有效的數(shù)據(jù)庫(kù)連接字符串 / SqlCommand 命令類(lèi)型 ( 存儲(chǔ)過(guò)程, T-SQL 語(yǔ)句, 等等。 )/ 存儲(chǔ)過(guò)程的名字或者 T-SQL 語(yǔ)句 / 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表 / 返回一個(gè)包含結(jié)果的 SqlDataReaderpubl

44、ic static SqlDataReader ExecuteReader(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

45、.CloseConnection 的語(yǔ)句就不會(huì)執(zhí)行,觸發(fā)的異常由 catch 捕獲。/ 關(guān)閉數(shù)據(jù)庫(kù)連接,并通過(guò) throw 再次引發(fā)捕捉到的異常。tryPrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return rdr;catchconn.Close();throw;/ / 執(zhí)行一條返回第一條記錄第一列的 SqlCo

46、mmand 命令,通過(guò)專(zhuān)用的連接字符串。/ 使用參數(shù)數(shù)組提供參數(shù)/ / / 使用示例:/ Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24);/ / 一個(gè)有效的數(shù)據(jù)庫(kù)連接字符串 / SqlCommand 命令類(lèi)型 ( 存儲(chǔ)過(guò)程, T-SQL 語(yǔ)句, 等等。 )/ 存儲(chǔ)過(guò)程的名字或者 T-SQL 語(yǔ)句 / 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表 / 返回一個(gè) object 類(lèi)型的數(shù)據(jù), 可以通過(guò) Conv

47、ert.ToType 方法轉(zhuǎn)換類(lèi)型 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, cmdTy

48、pe, cmdText, commandParameters);object val = cmd.ExecuteScalar(); cmd.Parameters.Clear();return val;/ / 執(zhí)行返回第一條記錄第一列的 SqlCommand 命令,通過(guò)已經(jīng)存在的數(shù)據(jù)庫(kù)連接。/ 使用參數(shù)數(shù)組提供參數(shù)/ / / 使用示例:/ Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, PublishOrders, new SqlParameter(prodid, 24);/ / 一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)連接 / SqlCommand 命令類(lèi)型 ( 存儲(chǔ)過(guò)程, T-SQL 語(yǔ)句, 等等。 )/ 存儲(chǔ)過(guò)程的名字或者 T-SQL 語(yǔ)句 / 以數(shù)組形式提供 SqlCommand 命令中用到 的參數(shù)列表 / 返回一個(gè) object 類(lèi)型的數(shù)據(jù), 可以通過(guò) Convert.ToType 方法轉(zhuǎn)換類(lèi)型 public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params S

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論