發(fā)布時(shí)間:2024-01-24閱讀(13)
編輯導(dǎo)語:產(chǎn)品經(jīng)理這一崗位往往需要對(duì)接多個(gè)方面,這就要求產(chǎn)品經(jīng)理最好能懂得其他崗位的一些知識(shí),而了解一些數(shù)據(jù)庫的基本知識(shí),則可以幫助產(chǎn)品經(jīng)理避免描述關(guān)系的過程中存在誤解。本篇文章里,作者就對(duì)產(chǎn)品經(jīng)理需要知道的關(guān)系模型進(jìn)行了總結(jié),一起來看一下。

背景
通常會(huì)有不同的需求方給產(chǎn)品經(jīng)理提需求,產(chǎn)品經(jīng)理在設(shè)計(jì)功能的時(shí)候,需要將需求轉(zhuǎn)換成后臺(tái)可以理解的實(shí)體,并且將實(shí)體之間的關(guān)系描述給后臺(tái),因?yàn)楫a(chǎn)品大多數(shù)不懂技術(shù),所以在描述關(guān)系的時(shí)候,可能會(huì)存在誤解,所以,產(chǎn)品經(jīng)理必須懂一些最基礎(chǔ)的數(shù)據(jù)庫知識(shí)。
數(shù)據(jù)庫模型一般有“層次模型”、“網(wǎng)狀模型”、“關(guān)系模型”這三種,而“關(guān)系模型”因?yàn)槠浜唵危斫馄饋砗唵?,所以逐漸流行起來?!瓣P(guān)系模型”中一般包括以下三種關(guān)系,分別是“一對(duì)一關(guān)系”,“一對(duì)多關(guān)系”,“多對(duì)多關(guān)系”。
一、主流關(guān)系數(shù)據(jù)庫目前,主流的關(guān)系數(shù)據(jù)庫主要分為以下幾類:
我們已經(jīng)知道,關(guān)系數(shù)據(jù)庫是建立在關(guān)系模型上的。而關(guān)系模型本質(zhì)上就是若干個(gè)存儲(chǔ)數(shù)據(jù)的二維表,可以把它們看作很多Excel表。
表的每一行稱為記錄(Record),記錄是一個(gè)邏輯意義上的數(shù)據(jù)。
表的每一列稱為字段(Column),同一個(gè)表的每一行記錄都擁有相同的若干字段。
和Excel表(單表)有所不同的是,關(guān)系數(shù)據(jù)庫的表和表之間需要建立“一對(duì)多”、“多對(duì)一”和“一對(duì)一”的關(guān)系,這樣才能夠按照應(yīng)用程序的邏輯來組織和存儲(chǔ)數(shù)據(jù)。
二、單表單表是數(shù)據(jù)庫里面最基礎(chǔ)的元素。在產(chǎn)品設(shè)計(jì)時(shí),如果只需要操作一個(gè)實(shí)體的,并提供curd 等基礎(chǔ)操作,那么這個(gè)實(shí)體就可以用單表存儲(chǔ)。如餐廳的門店數(shù)據(jù)、菜品數(shù)據(jù)等。
通常情況下,單表的數(shù)據(jù)以 table 的形式展現(xiàn),操作的按鈕也有兩種交互方式,顯式的顯示或者 hover 以后再顯示對(duì)應(yīng)的操作。這兩種沒有明顯的優(yōu)缺點(diǎn),需要根據(jù)業(yè)務(wù)形態(tài),進(jìn)行選擇。
常見產(chǎn)品例子:
在實(shí)際的工業(yè)化產(chǎn)品中,單表結(jié)構(gòu)的數(shù)據(jù)實(shí)際上是比較少的,比較常見的是用戶訪問日志、系統(tǒng)日志等。
三、一對(duì)一關(guān)系一對(duì)一關(guān)系是指關(guān)系數(shù)據(jù)庫中兩個(gè)表之間的一種關(guān)系。 表示的是表A 中的一行數(shù)據(jù)只與表B 中的一行有關(guān)系。
當(dāng)構(gòu)思好每一個(gè)實(shí)體具有的屬性以后,產(chǎn)品經(jīng)理需要構(gòu)思每一個(gè)實(shí)體承載什么樣的業(yè)務(wù),業(yè)務(wù)與業(yè)務(wù)之間是怎么流動(dòng)的。這個(gè)時(shí)候,表與表之間,就需要有關(guān)系的承載了。
“一對(duì)一關(guān)系”是最簡單的關(guān)系模型了,描述的是實(shí)體與實(shí)體之間的關(guān)系。如一個(gè)用戶,只有一個(gè)身份證信息,一個(gè)身份證對(duì)應(yīng)一個(gè)用戶,并不存在一個(gè)身份證對(duì)應(yīng)多個(gè)用戶,或者一個(gè)用戶對(duì)應(yīng)多個(gè)身份證,如下圖所示,person 表通過外鍵與card 進(jìn)行聯(lián)系。

當(dāng)產(chǎn)品接到的需求中,某個(gè)實(shí)體有常用以及不常用信息,通常我們都會(huì)將常用的信息顯示出來,不常用信息隱藏起來,不常用信息表和常用信息表,保證不常用信息表與常用信息表能夠?qū)?yīng)上:找一個(gè)具有唯一性的字段來共同連接兩張表。
一個(gè)常用表中的一條記錄永遠(yuǎn)只能在一張不常用表中匹配一條記錄,反之亦然。
在產(chǎn)品表現(xiàn)層中,一對(duì)一關(guān)系的交互設(shè)計(jì)通常是需要點(diǎn)擊,才能夠查看另外一個(gè)實(shí)體的詳情,如圖所示,這里的主要信息是學(xué)生的信息,而身份證信息,則需要用戶點(diǎn)擊以后,再去查看,這也符合用戶的使用場景,當(dāng)需要查看身份證信息時(shí),才點(diǎn)擊查看。
而身份證信息的展示則有很多方式,如drawer 層,modal 層,甚至是嵌套列表也可以。此處以modal 層為例子。

一對(duì)多關(guān)系表示表A 中的一行數(shù)據(jù)可以和表B中的多個(gè)行相關(guān),但是表B中的數(shù)據(jù)只能和表A中的一行數(shù)據(jù)相關(guān)。
例如:一個(gè)班級(jí)包含了多個(gè)學(xué)生,但是一個(gè)學(xué)生只能在一個(gè)班級(jí)中。在一對(duì)多的數(shù)據(jù)庫設(shè)計(jì)中,后臺(tái)通常會(huì)在學(xué)生表中,加入一個(gè)·classId· 指向class 表,從而表示一對(duì)多的關(guān)系,后臺(tái)設(shè)計(jì)如圖所示。


當(dāng)產(chǎn)品接收到的需求中,有包含或者被包含的關(guān)系,如一個(gè)課室有N個(gè)學(xué)生, 一個(gè)異常有N個(gè)告警,一個(gè)訂單有N個(gè)產(chǎn)品,我們就可以將這種包含的關(guān)系,抽象為一對(duì)多的關(guān)系。
在工業(yè)級(jí)產(chǎn)品中,一對(duì)多的關(guān)系是很常見的,通常的設(shè)計(jì)中,我們會(huì)用嵌套列表、drawer層、跳轉(zhuǎn)頁等進(jìn)行展示。
例如電商系統(tǒng)中的訂單頁,通常我們會(huì)在外層表格,展示訂單的數(shù)據(jù),當(dāng)用戶需要查看產(chǎn)品信息時(shí),用戶點(diǎn)擊“ ”號(hào)以后,才展示具體的產(chǎn)品信息,而產(chǎn)品信息的交互,則與單表結(jié)構(gòu)相似。

多對(duì)多關(guān)系表示表A中的一行數(shù)據(jù)可以和表B中的一行或者多行數(shù)據(jù)相關(guān)。表B的一行數(shù)據(jù)也可以和表A中的一行或者多行數(shù)據(jù)相關(guān)。
多對(duì)多關(guān)系,在關(guān)系型數(shù)據(jù)庫中,是最復(fù)雜的了。多對(duì)多關(guān)系,需要一張中間表(學(xué)生課程關(guān)系記錄)來轉(zhuǎn)換,這張中間表里面需要存放學(xué)生表和課程表的關(guān)系,此時(shí)學(xué)生與中間表示1對(duì)多關(guān)系,課程與中間表是1對(duì)多關(guān)系。
例如,一個(gè)學(xué)生可以選修多門課程,一門課程可以被多個(gè)學(xué)生選修,這種情況下,我們稱之為多對(duì)多關(guān)系。后臺(tái)設(shè)計(jì)中,通常會(huì)引入一個(gè)關(guān)系表來表述 “多對(duì)多”的關(guān)系,通常,關(guān)系表中會(huì)包括表A和表B的主鍵,如下圖所示,關(guān)系表則包含了學(xué)生表的主鍵和課程表的主鍵。


當(dāng)產(chǎn)品接收到的需求,抽象出來的業(yè)務(wù)實(shí)體中,實(shí)體之間既有包含關(guān)系,也存在被包含關(guān)系(與一對(duì)多關(guān)系,一字之差),那么產(chǎn)品就可以設(shè)計(jì)為多對(duì)多的關(guān)系了。
當(dāng)產(chǎn)品接到多對(duì)多關(guān)系的需求以后,通常都會(huì)給實(shí)體設(shè)計(jì)列表數(shù)據(jù)頁,如果用戶這時(shí)候提出一些統(tǒng)計(jì)實(shí)體之間關(guān)系的需求,那么一般都是通過關(guān)系表來統(tǒng)計(jì)的。如統(tǒng)計(jì)一門課有幾個(gè)學(xué)生選,一個(gè)學(xué)生選了幾門課。

如圖紅色框所示:不管是學(xué)生列表頁,還是課程列表頁,都有一個(gè)關(guān)系的匯總數(shù)據(jù),用戶點(diǎn)擊匯總數(shù)據(jù)以后,就可以展示詳情的數(shù)據(jù),通常關(guān)系的詳情,可以設(shè)置為modal 的組件。
作為產(chǎn)品經(jīng)理,雖然不是說一定要懂技術(shù),但是懂一點(diǎn)技術(shù),可以讓你更好地與后臺(tái)溝通交流,更容易推進(jìn)項(xiàng)目。
本文由 @汪仔9789 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-235645.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號(hào)-5 TXT地圖HTML地圖XML地圖