數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談_第1頁
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談_第2頁
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談_第3頁
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談_第4頁
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第1頁。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第1頁。相信無論是產(chǎn)品經(jīng)理還是項(xiàng)目經(jīng)理,都遇到過項(xiàng)目數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)相關(guān)的事情,說說個(gè)人對于數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的理解。

工欲善其事必先其器,先給大家介紹幾個(gè)我比較熟悉數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的工具:

(1)AxureRP7.0

可以用來做用例及頁面原型設(shè)計(jì)。

頁面原型可以直接預(yù)覽查看。

(2)VisualParadigm13.0

可以用來做UML設(shè)計(jì),我個(gè)人比較喜歡用它來畫業(yè)務(wù)流程圖。

也可以用來做類圖,用例圖。不過導(dǎo)出數(shù)據(jù)字典的話就麻煩了。

(3)表結(jié)構(gòu)設(shè)計(jì)器EZDML

使用很方便,方便進(jìn)行表結(jié)構(gòu)設(shè)計(jì),重要的是可以直接導(dǎo)出數(shù)據(jù)字典。建表的時(shí)候中英文直接對照在一起。個(gè)人推薦表結(jié)構(gòu)設(shè)計(jì)用這個(gè)工具,后面例子的截圖都是使用這個(gè)工具做的。

其次,數(shù)據(jù)結(jié)構(gòu)必須有比較確定的業(yè)務(wù)實(shí)施范圍(業(yè)務(wù)用例)及用戶行為(業(yè)務(wù)活動流程圖)。

有了以上結(jié)合頁面原型設(shè)計(jì),我們可以開始數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)了。

如何進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

那數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)要怎么做呢?結(jié)合電商購物商城幫助大家進(jìn)行理解。

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第2頁。拿大家在網(wǎng)上買過東西,形成訂單管理流程為例,進(jìn)行一下簡單說明:

消費(fèi)者通過購買商品,填寫訂單信息,選擇優(yōu)惠信息,提交訂單,付款。商家進(jìn)行發(fā)貨,消費(fèi)者收貨,評價(jià),完成訂單交易。

第一要分析表結(jié)構(gòu)關(guān)系

第一要分析表結(jié)構(gòu)關(guān)系,消費(fèi)者和訂單的關(guān)系,訂單和商品的關(guān)系,商家和商品的關(guān)系,商家和訂單的關(guān)系,當(dāng)前購買場景下各自的關(guān)系。

1.業(yè)務(wù)上有一對一,一對多,多對多3種關(guān)系

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第3頁。

京東上一個(gè)消費(fèi)者可以購買多個(gè)商家的多個(gè)商品,一個(gè)商品當(dāng)前只會屬于一個(gè)訂單,可以同時(shí)對多個(gè)商家的商品合并結(jié)算,生成一個(gè)主訂單,多個(gè)子訂單。

淘寶上一個(gè)消費(fèi)者可以購買多個(gè)商家的多個(gè)商品,一個(gè)商品當(dāng)前只會屬于一個(gè)訂單,可以同時(shí)對多個(gè)商家的商品合并結(jié)算,生成多個(gè)訂單。

從消費(fèi)者購買的訂單來看,京東的訂單表結(jié)構(gòu)中存在父子結(jié)構(gòu)或者說訂單存在一對多的引用關(guān)系。淘寶的訂單表結(jié)構(gòu)中不存在自引用關(guān)系或者說父子訂單關(guān)系,

提到自引用關(guān)系,可以通過自引用達(dá)成樹結(jié)構(gòu)顯示。例如如菜單,用戶層級,行政區(qū)域,訂單如果建立父子結(jié)構(gòu)也可以樹狀結(jié)構(gòu)顯示。

本文訂單表結(jié)構(gòu)邏輯參考淘寶,即消費(fèi)者一次購買過程中,按商家生成訂單,一個(gè)訂單可以購買多件商品,即訂單有子表訂單項(xiàng),一個(gè)訂單可以有多個(gè)訂單項(xiàng)。

*此流程中沒有多對多關(guān)系,若兩個(gè)對象之間存在多對多的關(guān)系,則應(yīng)消除這種關(guān)系。消除的辦法是,在兩者之間增加第三個(gè)對象。這樣,實(shí)現(xiàn)一個(gè)多對多的關(guān)系,變?yōu)閮蓚€(gè)一對多的關(guān)系。

舉個(gè)例子,在購買商品的詳情頁上顯示文章,一個(gè)文章可以涉及多個(gè)商品,一個(gè)商品可能和多篇文章有關(guān)。這時(shí)候我們就需要去消除多對多的關(guān)系。

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第4頁。

第二是表的設(shè)計(jì)

2.對象(表)的主鍵設(shè)計(jì)

流程中設(shè)計(jì)到的對象(表)主鍵Id皆用GUID類型。

不要用業(yè)務(wù)關(guān)系字段作為表的主鍵,更不要用組合字段做表的聯(lián)合主鍵。這樣便于將來表業(yè)務(wù)變化和表數(shù)據(jù)遷移,盡量減少依賴關(guān)系。

3.弄清楚表里設(shè)計(jì)的每個(gè)字段

表里設(shè)計(jì)每個(gè)字段的時(shí)候一定要想清楚,這個(gè)字段什么時(shí)候插入,是否會更新,是否必須字段,整個(gè)表的數(shù)據(jù)是否可以刪除。是否要建立主外鍵關(guān)系。(結(jié)合頁面原型模擬用戶行為進(jìn)行判斷)

4.數(shù)據(jù)結(jié)構(gòu)盡量簡單

可以計(jì)算得出的字段,前期建議不要插入。例如:訂單里的應(yīng)付總額,可以通過購買商品的單價(jià)和數(shù)量算出,這個(gè)總額不必存儲。

表里引用另一個(gè)表的主鍵作為外鍵,可以通過查詢得到值的,前期也不需要存儲。例如:訂單表里的收貨地址,包括省市區(qū)及詳細(xì)地址,只需要存儲地址ID,即可獲得詳細(xì)地址字段。

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第5頁。5.枚舉設(shè)計(jì)

基本結(jié)構(gòu)里不需要維護(hù)的字段建議做成枚舉類型,不建議存儲。例如訂單狀態(tài)。比如訂單狀態(tài),已下單,已付款,已發(fā)貨,已收貨,已評價(jià),已完成。

6.增加備注字段,以備不時(shí)之需。這里Order表里的Remarks字段。

7.重要的基礎(chǔ)數(shù)據(jù)不要物理刪除

Order表里的Enable字段,控制數(shù)據(jù)有效性,這樣便于以后數(shù)據(jù)分析。

8.下圖是訂單的表結(jié)構(gòu)設(shè)計(jì),訂單表結(jié)構(gòu)設(shè)計(jì)的另一個(gè)要點(diǎn)是,訂單是消費(fèi)者的消費(fèi)記錄,同時(shí)也是對商家結(jié)算的費(fèi)用依據(jù)。本設(shè)計(jì)里對訂單狀態(tài)是“已完成”的訂單進(jìn)行結(jié)算。

訂單業(yè)務(wù)流程里還有退款和退貨,本流程里退款和退貨有另外的表進(jìn)行設(shè)計(jì),再此不做闡述。

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第6頁。

另外幾點(diǎn)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的技巧:

(1)復(fù)雜的邏輯關(guān)系可以考慮進(jìn)行抽象表結(jié)構(gòu)設(shè)計(jì),體現(xiàn)繼承關(guān)系,組合關(guān)系

繼承關(guān)系的數(shù)據(jù)結(jié)構(gòu),當(dāng)父對象抽象出來的字段,子對象不要再去創(chuàng)建,盡量保持父子鍵GUID相同。例如:user表有UserID,UserName,Customer繼承User表,Customer表的CustomerID要存儲為UserID的值。當(dāng)生成訂單時(shí),存儲UserID來獲得UserName即可,無需去調(diào)用Customer表。

(2)在數(shù)據(jù)冗余和處理速度之間找到合適的平衡點(diǎn)

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)淺談全文共7頁,當(dāng)前為第7頁。

冗余數(shù)據(jù)何時(shí)填入,可以依據(jù)業(yè)務(wù)經(jīng)驗(yàn)或者顧客提出的業(yè)務(wù)需求及項(xiàng)目維護(hù)時(shí)的數(shù)據(jù)監(jiān)測結(jié)果進(jìn)行調(diào)整。

最后,表結(jié)構(gòu)設(shè)計(jì)與業(yè)務(wù)流程和頁面原型息息相關(guān)??偟膩碚f,隨著開發(fā)進(jìn)展,業(yè)務(wù)不斷漸進(jìn)明細(xì),數(shù)據(jù)結(jié)構(gòu)也就漸漸穩(wěn)定下來了。

作者:陳蜀,無錫東方云峰科技有限公司項(xiàng)目經(jīng)理,7年項(xiàng)目管理經(jīng)驗(yàn),豐富的服裝、物流ERP管理軟件設(shè)計(jì)開發(fā)經(jīng)驗(yàn)。

@陳蜀。。

題圖來自Pexels,基于CC0協(xié)議

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論