揭秘你不會畫“信息結(jié)構(gòu)圖”的本質(zhì)

豬哥gj
2 評論 7395 瀏覽 38 收藏 10 分鐘
B端产品经理要负责对目标行业和市场进行深入的分析和调研,了解客户的需求、痛点、期望和行为,找到产品的价值主张 🔗

編輯導語:產(chǎn)品信息結(jié)構(gòu)圖有助于清晰地展示產(chǎn)品信息,一定程度上可以為后臺上傳數(shù)據(jù)提供依據(jù),但不少人可能覺得產(chǎn)品信息結(jié)構(gòu)圖很難,這可能是對數(shù)據(jù)庫表結(jié)構(gòu)不理解等因素導致的。本篇文章里,作者就產(chǎn)品信息結(jié)構(gòu)圖的所需知識進行了總結(jié),一起來看一下。

前言

有沒有覺得設(shè)計產(chǎn)品信息結(jié)構(gòu)圖很難,根本無從下手,不知所措?根本原因在哪?

本質(zhì)原因在于你腦海中根本就沒有面向?qū)ο蟮母拍詈蛯?shù)據(jù)庫表結(jié)構(gòu)的理解。

別慌,豬哥這帶你探尋從產(chǎn)品信息拆解為對象,并將之追溯到數(shù)據(jù)庫底層的整個過程,從而解決你的疑惑。

一、什么是面向?qū)ο螅?/h2>

在面向?qū)ο蟪绦蛟O(shè)計中,對象指的是具體的某一個事物,在現(xiàn)實生活中能夠看得見摸得著的事物。

他其實是一種思維方式,講究的是將你看到的所有信息化整抽象為一個容器,這個容器可以裝很多信息,也可以做很多事,而這個容器就是對象。例如,一臺車是一個對象,它的屬性有:型號、顏色、大??;方法有:載客、路上跑等。

程序概念:一個 Java 程序可以認為是一系列對象的集合,而這些對象通過調(diào)用彼此的方法來協(xié)同工作。類(class)和對象(object)是面向?qū)ο蠓椒ǖ暮诵母拍?,面向?qū)ο蟮木幊趟枷胍恢绷D使計算機語言中,對事物的描述與現(xiàn)實世界中該事物的本來面目盡可能的保持一致。

說人話:用計算機語言描述現(xiàn)實世界的萬事萬物。

  • 類:類是一個模板,它描述一類對象的行為和狀態(tài),是對一類事物描述,是抽象的、概念上的定義。
  • 對象:對象是實際存在的該類事物的每個個體,是類的一個實例,由屬性(同義詞:狀態(tài)、字段)和方法(同義詞:行為、函數(shù))構(gòu)成。
  • 屬性:用于描述對象具備哪些特征。平常我們在頁面上看到的字段信息,大部分說的就是這玩意兒。
  • 方法:描述對象可以有哪些行為操作。邏輯運算、數(shù)據(jù)修改以及所有動作都是在方法中完成的。

二、什么是產(chǎn)品信息結(jié)構(gòu)圖?

梳理整個產(chǎn)品需要展示的信息,一般認為它是你通過分析整理得出的該產(chǎn)品各個頁面應(yīng)該展示的信息,同時也為后臺上傳數(shù)據(jù)提供依據(jù)。

結(jié)合面向?qū)ο笏季S:描述產(chǎn)品有哪些對象和字段。將你看到的頁面信息,抽象處理到一個對象的維度,然后把同一個對象的信息放在一起。

咱們產(chǎn)品人畫的信息結(jié)構(gòu)圖,不需要與開發(fā)同學設(shè)計的數(shù)據(jù)庫表結(jié)構(gòu)一模一樣,按你的理解將其以單個對象維度抽離出來即可。

三、什么是數(shù)據(jù)庫?

數(shù)據(jù)庫是“按照一定的規(guī)則來存儲和管理數(shù)據(jù)的倉庫”。是一個長期存儲在計算機內(nèi)的、有組織的、可共享的、統(tǒng)一管理的大量數(shù)據(jù)的集合。

說人話:數(shù)據(jù)庫其實就是一個硬盤,可以向里面存東西,也可以從里面取東西。

依稀記得《java編程思想》中有段話,世間萬事萬物,皆為對象。很強大,也很有道理。數(shù)據(jù)庫表結(jié)構(gòu),就是對象在程序語言的體現(xiàn)。咱們做系統(tǒng)設(shè)計,追蹤到數(shù)據(jù)底層,就是一個又一個對象,以及對象之間的關(guān)系(ER圖)。

1. 數(shù)據(jù)庫概念

  1. 數(shù)據(jù)庫:每個表由一個名字標識。表包含帶有列名的列,和記錄數(shù)據(jù)的行。
  2. 產(chǎn)品設(shè)計本質(zhì):無非就是對數(shù)據(jù)庫中各種表格的增刪改查(CRUD)。
  3. 數(shù)據(jù)庫類型:共分為關(guān)系型和非關(guān)系型,而對于PM的我們能搞懂關(guān)系型就可以了。
  4. 關(guān)系型數(shù)據(jù)庫=表結(jié)構(gòu)+表之間的關(guān)系。
  5. 關(guān)系型數(shù)據(jù)庫:一種基于現(xiàn)實生活中對象與對象之間關(guān)系的數(shù)據(jù)庫。主流關(guān)系型數(shù)據(jù)庫:mysql、oracle、db2、sqlite。
  6. 非關(guān)系型數(shù)據(jù)庫:一種相對松散且可以不按照嚴格的結(jié)構(gòu)規(guī)范進行存儲的數(shù)據(jù)庫,通常使用json格式的鍵值對【key-value】形式表示和存儲數(shù)據(jù)。主流非關(guān)系型數(shù)據(jù)庫:MongoDB、CouchDB。應(yīng)用場景:對存取要求比較高、并發(fā)處理比較高的場合。
  7. sql:數(shù)據(jù)庫操作語言,對數(shù)據(jù)庫中的數(shù)據(jù)表進行增刪改查的操作。增insert,刪delete,改update,查select。

2. 產(chǎn)品經(jīng)理可以應(yīng)用到設(shè)計上的思想

表結(jié)構(gòu):定義一個表的字段、類型、主鍵、外鍵、索引,這些基本的屬性組成了數(shù)據(jù)庫的表結(jié)構(gòu)。

產(chǎn)品設(shè)計場景應(yīng)用:只需要關(guān)注當前表中有哪些字段即可。所以跟技術(shù)溝通的時候,當前頁面有哪些信息你可以匯總抽象起來,那就是一張表。信息中的各個細節(jié)就是表中的每個字段。

表之間的關(guān)聯(lián)關(guān)系(ER圖):表之間的關(guān)系共有四種【一對一、一對多、多對一、多對多】。小技巧,一般是兩兩對象相比較,A跟B什么關(guān)系,B跟A又是什么關(guān)系,從而得出結(jié)論。

1)技術(shù)上好處:級聯(lián)刪除

表之間的關(guān)聯(lián)關(guān)系有什么用?可以有一個連帶關(guān)系。

舉個例子,一個用戶表,一個信息表,一個用戶對應(yīng)多條信息,當你刪除用戶的時候是不是這個用戶的信息也要被刪除,如果沒有關(guān)聯(lián)關(guān)系的話,你就要在刪除用戶前手工寫條sql語句去刪除信息表里的對應(yīng)信息,如果有關(guān)聯(lián)的話,就不用了,級聯(lián)刪除就可以了,只要刪除用戶,這個用戶下面的信息也就沒了。

2)產(chǎn)品設(shè)計場景應(yīng)用:多渠道自動匹配信息

背景:我在A渠道某個頁面填寫了一些信息,其他不同渠道BCD頁面又要填寫部分類似的字段信息,很耗時耗力。

功能:為了提高人效,我決定設(shè)計一個自動匹配的的功能。到底是一對一、一對多、多對一、多對多呢?

經(jīng)調(diào)研,A渠道參照物與BCD渠道都是一對一關(guān)系。那么我只需要設(shè)計一個ABCD渠道關(guān)系對應(yīng)列表,拿主流渠道A的參照物與其他渠道做比較,就可以實現(xiàn)系統(tǒng)自動將A的信息同步給BCD。

PS:數(shù)據(jù)庫表,對于產(chǎn)品經(jīng)理我覺得了解其底層原理就好,能將其技術(shù)原理應(yīng)用到產(chǎn)品設(shè)計上,可以讓你思路更加清晰明了哦(OMG,原來我的系統(tǒng)就是這幾張表在發(fā)揮作用,太牛逼了,技術(shù)大哥們)。

四、案例解析 | 三者的關(guān)系

我們以下圖的小轎車來舉例,它有不同的的顏色、品牌、名稱等信息,我們要來為它做產(chǎn)品設(shè)計,他的本質(zhì)從產(chǎn)品信息結(jié)構(gòu)圖——對象——數(shù)據(jù)庫底層是怎樣的呢?一起探秘下。

4·產(chǎn)品學技術(shù)|揭秘你不會畫產(chǎn)品信息結(jié)構(gòu)圖的本質(zhì)

產(chǎn)品信息結(jié)構(gòu)圖:有一個車的列表管理頁面,包含顏色、品牌、名稱三個信息。

面向?qū)ο笏季S:汽車為類(class),而具體的每個人車該類的對象(object),對象包含汽車的三個屬性顏色、品牌、名稱等。

數(shù)據(jù)庫表結(jié)構(gòu):有一張表車,他有三個字段顏色、品牌、名稱。

4·產(chǎn)品學技術(shù)|揭秘你不會畫產(chǎn)品信息結(jié)構(gòu)圖的本質(zhì)

對照起來看就很容易理解了對不對?所以并不難,難的是什么?難的是如何把他們抽象成對象。

怎么才能具備對象思維呢?且聽下回解析抽象、封裝、繼承、多態(tài)思維。

總結(jié)

希望解決了你的疑惑,歡迎留言深度溝通。

 

作者:豬哥gj,微信公眾號:刻意練習產(chǎn)品思維(ID:kylxpm520)

本文由 @豬哥gj 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 在編程語言里,最基礎(chǔ)的是變量和函數(shù),但是變量只能代表一個東西,而一個函數(shù)也只能執(zhí)行一種行為,類相當于是多個變量和函數(shù)的集合體,像一個組合而成的模板。

    來自北京 回復
  2. 你這是再教我畫“信息結(jié)構(gòu)圖”啦,找到對象,找到產(chǎn)品信息,建立數(shù)據(jù)庫。應(yīng)該就是這三個步驟啦

    來自河南 回復