為什么90%的數(shù)據(jù)產(chǎn)品經(jīng)理都搞混了這三個(gè)模型?
上周和一個(gè)做了3年數(shù)據(jù)產(chǎn)品經(jīng)理的朋友吃飯,他苦笑著告訴我:"老大讓我寫PRD時(shí)要加上邏輯模型設(shè)計(jì),我當(dāng)場就懵了。
概念模型、邏輯模型、物理模型
,聽起來都很高大上,可我真的分不清楚啊!"這話聽起來熟悉嗎?在我接觸過的數(shù)據(jù)產(chǎn)品經(jīng)理中,至少有90%的人都被這三個(gè)模型搞得頭暈?zāi)X漲。明明都是"模型",為什么要分得這么細(xì)?它們到底有什么區(qū)別?
其實(shí),搞懂這三個(gè)模型,就像學(xué)會(huì)了一門"翻譯語言"——把業(yè)務(wù)需求翻譯成技術(shù)實(shí)現(xiàn)的語言。
三個(gè)模型,其實(shí)就是三種"語言"
我喜歡用蓋房子來解釋這三個(gè)模型的區(qū)別。
概念模型就像是你跟建筑師描述理想中的房子:"我要一個(gè)有花園的兩層小樓,樓下要有客廳和廚房,樓上要有臥室和書房。"
這時(shí)候你在乎的是功能和需求,不會(huì)去考慮用什么材料、怎么布線。
邏輯模型則是建筑師根據(jù)你的需求畫出的設(shè)計(jì)圖紙:客廳20平米,廚房15平米,樓梯在哪里,門窗怎么開。
圖紙上標(biāo)注得清清楚楚,但還沒有涉及具體用什么牌子的水泥、鋼筋。
物理模型好比是施工隊(duì)拿到圖紙后制定的施工方案:用多少號鋼筋、什么型號的水泥、電線怎么走、水管怎么布。
每一個(gè)細(xì)節(jié)都要考慮到實(shí)際施工的可行性。
在數(shù)據(jù)庫設(shè)計(jì)中,這三個(gè)模型扮演的角色完全一樣。
概念模型關(guān)心的是業(yè)務(wù)邏輯:用戶、訂單、商品之間是什么關(guān)系?
邏輯模型關(guān)心的是數(shù)據(jù)結(jié)構(gòu):需要建幾張表,表之間怎么關(guān)聯(lián)?
物理模型關(guān)心的是技術(shù)實(shí)現(xiàn):用MySQL還是Oracle,怎么建索引,怎么分庫分表?
一個(gè)電商案例,讓你徹底搞懂
我曾經(jīng)參與過一個(gè)電商平臺(tái)的數(shù)據(jù)庫設(shè)計(jì)項(xiàng)目,正好用這個(gè)案例來說明三個(gè)模型是怎么一步步演進(jìn)的。
項(xiàng)目剛開始時(shí),業(yè)務(wù)方提出需求:"我們要管理商品、處理訂單、跟蹤庫存。"聽起來簡單,但具體怎么實(shí)現(xiàn)?
概念模型階段,我們開始梳理業(yè)務(wù)關(guān)系:
用戶可以下訂單,訂單里包含商品,商品有庫存,商品來自供應(yīng)商。這些業(yè)務(wù)對象之間的關(guān)系,就構(gòu)成了概念模型的核心。我們不需要考慮技術(shù)細(xì)節(jié),只需要把業(yè)務(wù)邏輯理清楚。
當(dāng)時(shí)我們畫了一張很簡單的關(guān)系圖:用戶→訂單→商品←供應(yīng)商,商品→庫存
。
業(yè)務(wù)方一看就明白了,連非技術(shù)出身的運(yùn)營同事都能參與討論。
邏輯模型階段,我們開始考慮數(shù)據(jù)結(jié)構(gòu):
用戶表需要哪些字段?用戶ID、姓名、手機(jī)號、郵箱。
訂單表呢?訂單ID、用戶ID、下單時(shí)間、訂單狀態(tài)。商品表包含商品ID、商品名稱、價(jià)格、供應(yīng)商ID。
最復(fù)雜的是訂單和商品的關(guān)系。一個(gè)訂單可以包含多個(gè)商品,一個(gè)商品也可能出現(xiàn)在多個(gè)訂單中,這是典型的多對多關(guān)系。
我們需要?jiǎng)?chuàng)建一個(gè)中間表"訂單商品表",包含訂單ID、商品ID和購買數(shù)量。
這個(gè)階段,技術(shù)人員開始介入,但我們討論的還是純粹的數(shù)據(jù)邏輯,不涉及具體的數(shù)據(jù)庫選擇。
物理模型階段,我們要考慮具體的技術(shù)實(shí)現(xiàn):
選擇什么數(shù)據(jù)庫?經(jīng)過評估,我們選擇了Apache Doris。
訂單表數(shù)據(jù)量大,需要按月分區(qū)。商品ID、訂單ID這些經(jīng)常查詢的字段要建索引。Doris的易用,且查詢快。
這個(gè)階段,DBA成為主角,每個(gè)技術(shù)細(xì)節(jié)都要仔細(xì)考慮,性能測試必不可少。
經(jīng)過這三個(gè)階段,一個(gè)完整的電商數(shù)據(jù)庫系統(tǒng)就設(shè)計(jì)出來了。業(yè)務(wù)需求通過概念模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu),再通過物理模型落地為可運(yùn)行的系統(tǒng)。
結(jié)語
很多產(chǎn)品經(jīng)理覺得這三個(gè)模型太復(fù)雜,其實(shí)是沒有理解它們的本質(zhì)作用——它們就像三種不同的"語言",幫助不同角色的人進(jìn)行有效溝通。
概念模型是"業(yè)務(wù)語言",運(yùn)營、市場、產(chǎn)品經(jīng)理都能看懂。邏輯模型是"設(shè)計(jì)語言",架構(gòu)師、開發(fā)人員用它來溝通。物理模型是"實(shí)現(xiàn)語言",DBA、運(yùn)維工程師靠它來具體操作。
作為數(shù)據(jù)產(chǎn)品經(jīng)理,你的價(jià)值就在于能夠在這三種語言之間自由切換,做好"翻譯官"的角色。
當(dāng)業(yè)務(wù)方提出需求時(shí),你能快速構(gòu)建概念模型,讓所有人對業(yè)務(wù)邏輯達(dá)成共識(shí)。當(dāng)技術(shù)方開始設(shè)計(jì)時(shí),你能參與邏輯模型的討論,確保技術(shù)方案符合業(yè)務(wù)需求。當(dāng)系統(tǒng)上線后出現(xiàn)性能問題時(shí),你也能理解物理模型的優(yōu)化思路。
這套方法論不僅適用于數(shù)據(jù)庫設(shè)計(jì),任何復(fù)雜的產(chǎn)品設(shè)計(jì)都可以借鑒:先理清業(yè)務(wù)邏輯,再設(shè)計(jì)功能架構(gòu),最后考慮技術(shù)實(shí)現(xiàn)
。
下次老板再讓你設(shè)計(jì)邏輯模型時(shí),你就不會(huì)再懵了。