版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中圖版(北京)八年級地理上冊2.2《主要的氣候類型》聽課評課記錄
- 人教版七年級地理上冊:1.1《地球和地球儀》聽課評課記錄3
- 2025年高性能鐵氧體一次料合作協(xié)議書
- 星球版地理八年級上冊《第一節(jié) 合理利用土地資源》聽課評課記錄3
- 人教版歷史八年級下冊第13課《香港和澳門的回歸》聽課評課記錄
- 魯教版地理七年級下冊9.1《自然特征與農(nóng)業(yè)》聽課評課記錄1
- 五年級數(shù)學(xué)下冊聽評課記錄《第4單元 3分?jǐn)?shù)的基本性質(zhì)》人教版
- 粵人版地理八年級上冊《第三節(jié) 水資源》聽課評課記錄1
- 湘教版數(shù)學(xué)七年級下冊1.3《二元一次方程組的應(yīng)用》聽評課記錄1
- 蘇科版九年級數(shù)學(xué)聽評課記錄:第80講期中期末串講
- 小學(xué)五年級英語20篇英文閱讀理解(答案附在最后)
- 學(xué)校安全隱患排查治理工作臺賬
- GB/T 8151.13-2012鋅精礦化學(xué)分析方法第13部分:鍺量的測定氫化物發(fā)生-原子熒光光譜法和苯芴酮分光光度法
- 2023年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語)試題庫含答案解析
- GB/T 23800-2009有機(jī)熱載體熱穩(wěn)定性測定法
- T-SFSF 000012-2021 食品生產(chǎn)企業(yè)有害生物風(fēng)險(xiǎn)管理指南
- 2023年上海市閔行區(qū)精神衛(wèi)生中心醫(yī)護(hù)人員招聘筆試題庫及答案解析
- 水庫工程施工組織設(shè)計(jì)
- 氣流粉碎機(jī)課件
- 梁若瑜著-十二宮六七二象書增注版
- SJG 74-2020 深圳市安裝工程消耗量定額-高清現(xiàn)行
評論
0/150
提交評論