產(chǎn)品架構(gòu)設(shè)計(jì)之產(chǎn)品實(shí)體設(shè)計(jì)一,二
本文深入探討了實(shí)體設(shè)計(jì)的每個(gè)關(guān)鍵步驟,從識別核心實(shí)體到定義其屬性、構(gòu)建實(shí)體間關(guān)系,以及如何驗(yàn)證設(shè)計(jì)以適應(yīng)實(shí)際業(yè)務(wù)需求。通過具體的電商平臺案例,我們展示了如何將抽象的業(yè)務(wù)概念轉(zhuǎn)化為具體的產(chǎn)品架構(gòu),確保設(shè)計(jì)既符合當(dāng)前需求又具備未來擴(kuò)展的可能。
今天我們來談一下產(chǎn)品架構(gòu)設(shè)計(jì)中,一個(gè)必不可少的環(huán)節(jié)——實(shí)體設(shè)計(jì)。
01什么是實(shí)體?
在產(chǎn)品架構(gòu)中,實(shí)體可以理解為“名詞”——即產(chǎn)品中的關(guān)鍵要素或?qū)ο?。這些實(shí)體是產(chǎn)品功能的基本構(gòu)件,代表了實(shí)際業(yè)務(wù)中的具體事物或概念。
比如,在一個(gè)電商平臺中,用戶、商品、訂單都是典型的實(shí)體。它們是產(chǎn)品中不可或缺的部分,是我們要處理和操作的對象。
那我們?yōu)槭裁匆橄笤O(shè)計(jì)實(shí)體?
抽象設(shè)計(jì)實(shí)體的目的是為了把復(fù)雜的業(yè)務(wù)場景和需求轉(zhuǎn)化為易于理解和實(shí)現(xiàn)的模型。實(shí)體是產(chǎn)品中最基本的組成單元,通過抽象設(shè)計(jì)實(shí)體,我們能夠:
- 明確產(chǎn)品的核心功能:將實(shí)際業(yè)務(wù)中的復(fù)雜對象抽象為實(shí)體,可以清晰地看到產(chǎn)品的核心功能和組成部分。
- 簡化系統(tǒng)設(shè)計(jì):實(shí)體的抽象設(shè)計(jì)能夠幫助我們將復(fù)雜的邏輯拆解成可管理的部分,使系統(tǒng)設(shè)計(jì)更加簡潔、易于維護(hù)。
- 提高可擴(kuò)展性:通過合理的實(shí)體設(shè)計(jì),可以使產(chǎn)品架構(gòu)具有良好的擴(kuò)展性,方便未來的功能擴(kuò)展和更新。
而如果用大白話來解釋就是:我們將一個(gè)模糊的業(yè)務(wù),提煉出真正要“落庫”的數(shù)據(jù)表,畢竟計(jì)算機(jī)只能處理結(jié)構(gòu)化的數(shù)據(jù)!
那可能有朋友要問了在產(chǎn)品架構(gòu)中為什么要先設(shè)計(jì)實(shí)體?
實(shí)體設(shè)計(jì)是產(chǎn)品架構(gòu)設(shè)計(jì)的基礎(chǔ)。實(shí)體設(shè)計(jì)決定了產(chǎn)品的基本結(jié)構(gòu)和邏輯,是后續(xù)流程設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)、界面設(shè)計(jì)等工作的基礎(chǔ)。
如果沒有一個(gè)清晰的實(shí)體設(shè)計(jì),整個(gè)產(chǎn)品架構(gòu)將會缺乏堅(jiān)實(shí)的基礎(chǔ),導(dǎo)致功能實(shí)現(xiàn)的復(fù)雜度增加,系統(tǒng)難以擴(kuò)展和維護(hù)。
試想下如果大家連頁面上放什么字段都沒有想清楚,一上來就畫頁面,這樣的產(chǎn)品在大型的企業(yè)級B端產(chǎn)品中是不敢想象的災(zāi)難設(shè)計(jì)。
所以說在產(chǎn)品架構(gòu)設(shè)計(jì)中,實(shí)體設(shè)計(jì)是將業(yè)務(wù)需求轉(zhuǎn)化為技術(shù)實(shí)現(xiàn)的橋梁。一個(gè)優(yōu)秀的實(shí)體設(shè)計(jì)不僅能夠支撐產(chǎn)品的現(xiàn)有功能,還能為未來的擴(kuò)展奠定堅(jiān)實(shí)的基礎(chǔ)。
02 實(shí)體設(shè)計(jì)的方法
具體來說,我們設(shè)計(jì)實(shí)體的方法可以分為下面的4步:
1. 識別關(guān)鍵實(shí)體
在產(chǎn)品架構(gòu)設(shè)計(jì)初期,首先要識別出產(chǎn)品中的關(guān)鍵實(shí)體。在絕大多數(shù)的時(shí)候,這些實(shí)體通常對應(yīng)于產(chǎn)品中的核心功能或流程,代表了業(yè)務(wù)中的主要對象(比如會員,訂單,商品等)。
步驟:
- 分析線下用戶的工作場景,提取出與用戶交互最頻繁的關(guān)鍵詞對象。
- 從業(yè)務(wù)流程中找出對產(chǎn)品功能至關(guān)重要的元素。
例如:梳理用戶報(bào)銷場景:用戶提供票據(jù),填寫金額,提交紙質(zhì)表單,領(lǐng)導(dǎo)簽字該表單,財(cái)務(wù)查閱該表單……..(這張表單就是我們要提煉的實(shí)體-報(bào)銷單)
2. 定義實(shí)體屬性
因?yàn)槊總€(gè)實(shí)體都有其獨(dú)特的屬性,而在找到實(shí)體后就需要提煉實(shí)體的屬性,這些屬性描述了實(shí)體的特征和狀態(tài)。
步驟:
- 列出每個(gè)實(shí)體能唯一區(qū)分的屬性,如ID、名稱、描述等。
- 根據(jù)業(yè)務(wù)需求,增加與業(yè)務(wù)邏輯相關(guān)的屬性。
例如:報(bào)銷單中唯一能區(qū)分的屬性是單據(jù)號,單據(jù)類型,而根據(jù)A公司要求,單據(jù)中必須要有申請人ID,申請人職位,申請人職級……(這些唯一項(xiàng)與A公司的要求共同構(gòu)成了實(shí)體屬性字段)
3. 設(shè)計(jì)實(shí)體之間的關(guān)系
實(shí)體之間的關(guān)系是產(chǎn)品邏輯的核心。通過設(shè)計(jì)實(shí)體間的關(guān)系,可以確定系統(tǒng)的邏輯結(jié)構(gòu)和數(shù)據(jù)流動。
步驟:
- 確定實(shí)體之間的關(guān)聯(lián)類型,如一對一、一對多、多對多等。
- 使用實(shí)體關(guān)系圖(ER圖)來展示實(shí)體之間的關(guān)系。
4. 驗(yàn)證實(shí)體設(shè)計(jì)
設(shè)計(jì)完成后,需要對實(shí)體設(shè)計(jì)進(jìn)行驗(yàn)證,以確保其能夠滿足業(yè)務(wù)需求,并具備良好的擴(kuò)展性和可維護(hù)性。
步驟:
- 使用實(shí)際業(yè)務(wù)場景進(jìn)行測試,驗(yàn)證設(shè)計(jì)的合理性。
- 通過模擬操作流程,檢查設(shè)計(jì)的健壯性和容錯性。
例如我們將抽象出的報(bào)銷單據(jù)實(shí)體,在整個(gè)線下流程中進(jìn)行實(shí)測,檢測有無缺少的字段,有無流程跑不通的情況,就像財(cái)務(wù)是不是拿到這張單據(jù)就可以不要領(lǐng)導(dǎo)簽字,在實(shí)際與財(cái)務(wù)溝通后由于公司性質(zhì)要求,所以必須要簽字,因此報(bào)銷單的實(shí)體中還需要增加標(biāo)識屬性,是否已打印出待簽字單,用于區(qū)分是否完成了打印動作。
03 模擬案例演示:電商平臺的實(shí)體設(shè)計(jì)
假設(shè)我們正在設(shè)計(jì)一個(gè)電商平臺,該平臺的核心功能是讓用戶能夠?yàn)g覽商品、加入購物車、下單購買商品,以及查看訂單狀態(tài)。為了實(shí)現(xiàn)這些功能,我們需要先設(shè)計(jì)好平臺中的核心實(shí)體。以下是具體步驟及結(jié)果輸出,展示如何一步步提煉出實(shí)體。
步驟一:識別關(guān)鍵實(shí)體
在設(shè)計(jì)實(shí)體之前,我們需要了解平臺的主要功能和業(yè)務(wù)流程:
- 用戶瀏覽商品: 用戶可以瀏覽和搜索平臺上的商品。
- 加入購物車: 用戶可以將商品加入購物車,準(zhǔn)備購買。
- 生成訂單并支付: 用戶在購物車中選擇商品后,可以生成訂單并完成支付。
- 查看訂單狀態(tài): 用戶可以在訂單歷史中查看已購買商品的狀態(tài)和詳情。
基于這些功能需求,我們識別出以下關(guān)鍵實(shí)體:
- 用戶(User): 平臺的使用者。
- 商品(Product): 在平臺上出售的商品。
- 購物車(Cart): 用戶選擇并準(zhǔn)備購買的商品集合。
- 訂單(Order): 用戶生成的購買記錄。
步驟二:定義實(shí)體屬性
確定了關(guān)鍵實(shí)體后,我們需要為每個(gè)實(shí)體定義屬性,這些屬性將幫助我們詳細(xì)描述實(shí)體的特征和狀態(tài)。
1)用戶(User):
- 用戶ID(userID): 唯一標(biāo)識一個(gè)用戶的ID。
- 用戶名(username): 用戶的名稱。
- 郵箱(email): 用戶的郵箱地址,用于登錄和聯(lián)系。
- 密碼(password): 用戶的賬戶密碼。
- 注冊日期(registrationDate): 用戶注冊平臺的日期。
2)商品(Product):
- 商品ID(productID): 唯一標(biāo)識一個(gè)商品的ID。
- 商品名稱(productName): 商品的名稱。
- 描述(description): 商品的詳細(xì)信息。
- 價(jià)格(price): 商品的售價(jià)。
- 庫存數(shù)量(stockQuantity): 當(dāng)前商品的庫存數(shù)量。
- 創(chuàng)建日期(createdDate): 商品上架的日期。
3)購物車(Cart):
- 購物車ID(cartID): 唯一標(biāo)識一個(gè)購物車的ID。
- 用戶ID(userID): 關(guān)聯(lián)到用戶的購物車。
- 商品列表(products): 當(dāng)前購物車中所有商品的集合。
4)訂單(Order):
- 訂單ID(orderID): 唯一標(biāo)識一個(gè)訂單的ID。
- 用戶ID(userID): 生成訂單的用戶ID。
- 訂單日期(orderDate): 訂單生成的日期。
- 訂單狀態(tài)(orderStatus): 訂單的當(dāng)前狀態(tài)(如待付款、已付款、已發(fā)貨、已完成)。
- 商品列表(products): 訂單中包含的商品列表。
- 總金額(totalAmount): 訂單中所有商品的總金額。
步驟三:設(shè)計(jì)實(shí)體之間的關(guān)系
在定義了實(shí)體和它們的屬性之后,接下來是設(shè)計(jì)實(shí)體之間的關(guān)系。這些關(guān)系將決定平臺的邏輯結(jié)構(gòu)。
- 用戶與購物車(User-Cart):一個(gè)用戶只有一個(gè)購物車(1:1 關(guān)系)。
- 用戶與訂單(User-Order):一個(gè)用戶可以有多個(gè)訂單(1:多 關(guān)系)。
- 購物車與商品(Cart-Product):一個(gè)購物車可以包含多個(gè)商品,一個(gè)商品可以出現(xiàn)在多個(gè)購物車中(多:多 關(guān)系)。
- 訂單與商品(Order-Product):一個(gè)訂單可以包含多個(gè)商品,一個(gè)商品可以出現(xiàn)在多個(gè)訂單中(多:多 關(guān)系)。
步驟四:驗(yàn)證實(shí)體設(shè)計(jì)
最后,我們通過模擬一些實(shí)際場景來驗(yàn)證實(shí)體設(shè)計(jì)的合理性和完整性。
1)用戶瀏覽并加入商品到購物車:
- 用戶登錄(User),瀏覽商品(Product),將商品加入購物車(Cart)。
- 檢查購物車中是否正確記錄了所選商品。
2)用戶生成訂單并支付:
- 用戶從購物車中選擇商品生成訂單(Order),并進(jìn)行支付。
- 驗(yàn)證訂單中包含的商品列表和總金額是否正確計(jì)算。
- 檢查訂單狀態(tài)是否從“待付款”變?yōu)椤耙迅犊睢薄?/li>
3)用戶查看訂單狀態(tài):
用戶可以在訂單歷史中查看已生成的訂單及其狀態(tài)(OrderStatus)。
以上為大家演示的就是一個(gè)完整的實(shí)體找尋與定義的流程。
04 總結(jié)
可以看到這樣的設(shè)計(jì)背后,我們一步步的把抽象的業(yè)務(wù)具體化得到了標(biāo)準(zhǔn)的可產(chǎn)品化的設(shè)計(jì),而這也是高階產(chǎn)品所必備的技能。
本文由人人都是產(chǎn)品經(jīng)理作者【三爺茶館】,微信公眾號:【三爺茶館】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
- 目前還沒評論,等你發(fā)揮!