編輯導語:産品經理這一崗位往往需要對接多個方面,這就要求産品經理最好能懂得其他崗位的一些知識,而了解一些數據庫的基本知識,則可以幫助産品經理避免描述關系的過程中存在誤解。本篇文章裡,作者就對産品經理需要知道的關系模型進行了總結,一起來看一下。
背景
通常會有不同的需求方給産品經理提需求,産品經理在設計功能的時候,需要将需求轉換成後台可以理解的實體,并且将實體之間的關系描述給後台,因為産品大多數不懂技術,所以在描述關系的時候,可能會存在誤解,所以,産品經理必須懂一些最基礎的數據庫知識。
數據庫模型一般有“層次模型”、“網狀模型”、“關系模型”這三種,而“關系模型”因為其簡單,理解起來簡單,所以逐漸流行起來。“關系模型”中一般包括以下三種關系,分别是“一對一關系”,“一對多關系”,“多對多關系”。
一、主流關系數據庫目前,主流的關系數據庫主要分為以下幾類:
我們已經知道,關系數據庫是建立在關系模型上的。而關系模型本質上就是若幹個存儲數據的二維表,可以把它們看作很多Excel表。
表的每一行稱為記錄(Record),記錄是一個邏輯意義上的數據。
表的每一列稱為字段(Column),同一個表的每一行記錄都擁有相同的若幹字段。
和Excel表(單表)有所不同的是,關系數據庫的表和表之間需要建立“一對多”、“多對一”和“一對一”的關系,這樣才能夠按照應用程序的邏輯來組織和存儲數據。
二、單表單表是數據庫裡面最基礎的元素。在産品設計時,如果隻需要操作一個實體的,并提供curd 等基礎操作,那麼這個實體就可以用單表存儲。如餐廳的門店數據、菜品數據等。
通常情況下,單表的數據以 table 的形式展現,操作的按鈕也有兩種交互方式,顯式的顯示或者 hover 以後再顯示對應的操作。這兩種沒有明顯的優缺點,需要根據業務形态,進行選擇。
常見産品例子:
在實際的工業化産品中,單表結構的數據實際上是比較少的,比較常見的是用戶訪問日志、系統日志等。
三、一對一關系一對一關系是指關系數據庫中兩個表之間的一種關系。 表示的是表A 中的一行數據隻與表B 中的一行有關系。
當構思好每一個實體具有的屬性以後,産品經理需要構思每一個實體承載什麼樣的業務,業務與業務之間是怎麼流動的。這個時候,表與表之間,就需要有關系的承載了。
“一對一關系”是最簡單的關系模型了,描述的是實體與實體之間的關系。如一個用戶,隻有一個身份證信息,一個身份證對應一個用戶,并不存在一個身份證對應多個用戶,或者一個用戶對應多個身份證,如下圖所示,person 表通過外鍵與card 進行聯系。
當産品接到的需求中,某個實體有常用以及不常用信息,通常我們都會将常用的信息顯示出來,不常用信息隐藏起來,不常用信息表和常用信息表,保證不常用信息表與常用信息表能夠對應上:找一個具有唯一性的字段來共同連接兩張表。
一個常用表中的一條記錄永遠隻能在一張不常用表中匹配一條記錄,反之亦然。
在産品表現層中,一對一關系的交互設計通常是需要點擊,才能夠查看另外一個實體的詳情,如圖所示,這裡的主要信息是學生的信息,而身份證信息,則需要用戶點擊以後,再去查看,這也符合用戶的使用場景,當需要查看身份證信息時,才點擊查看。
而身份證信息的展示則有很多方式,如drawer 層,modal 層,甚至是嵌套列表也可以。此處以modal 層為例子。
四、一對多關系
一對多關系表示表A 中的一行數據可以和表B中的多個行相關,但是表B中的數據隻能和表A中的一行數據相關。
例如:一個班級包含了多個學生,但是一個學生隻能在一個班級中。在一對多的數據庫設計中,後台通常會在學生表中,加入一個·classId· 指向class 表,從而表示一對多的關系,後台設計如圖所示。
當産品接收到的需求中,有包含或者被包含的關系,如一個課室有N個學生, 一個異常有N個告警,一個訂單有N個産品,我們就可以将這種包含的關系,抽象為一對多的關系。
在工業級産品中,一對多的關系是很常見的,通常的設計中,我們會用嵌套列表、drawer層、跳轉頁等進行展示。
例如電商系統中的訂單頁,通常我們會在外層表格,展示訂單的數據,當用戶需要查看産品信息時,用戶點擊“ ”号以後,才展示具體的産品信息,而産品信息的交互,則與單表結構相似。
五、多對多關系
多對多關系表示表A中的一行數據可以和表B中的一行或者多行數據相關。表B的一行數據也可以和表A中的一行或者多行數據相關。
多對多關系,在關系型數據庫中,是最複雜的了。多對多關系,需要一張中間表(學生課程關系記錄)來轉換,這張中間表裡面需要存放學生表和課程表的關系,此時學生與中間表示1對多關系,課程與中間表是1對多關系。
例如,一個學生可以選修多門課程,一門課程可以被多個學生選修,這種情況下,我們稱之為多對多關系。後台設計中,通常會引入一個關系表來表述 “多對多”的關系,通常,關系表中會包括表A和表B的主鍵,如下圖所示,關系表則包含了學生表的主鍵和課程表的主鍵。
當産品接收到的需求,抽象出來的業務實體中,實體之間既有包含關系,也存在被包含關系(與一對多關系,一字之差),那麼産品就可以設計為多對多的關系了。
當産品接到多對多關系的需求以後,通常都會給實體設計列表數據頁,如果用戶這時候提出一些統計實體之間關系的需求,那麼一般都是通過關系表來統計的。如統計一門課有幾個學生選,一個學生選了幾門課。
如圖紅色框所示:不管是學生列表頁,還是課程列表頁,都有一個關系的彙總數據,用戶點擊彙總數據以後,就可以展示詳情的數據,通常關系的詳情,可以設置為modal 的組件。
作為産品經理,雖然不是說一定要懂技術,但是懂一點技術,可以讓你更好地與後台溝通交流,更容易推進項目。
本文由 @汪仔9789 原創發布于人人都是産品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!