數(shù)據(jù)庫建模知識:在需求獲取與分析中的應(yīng)用(上)
本文主要針對答主在平時(shí)工作中獲取、分析需求用到的建模知識進(jìn)行梳理,希望對部分童鞋有用。
一、寫在前面
產(chǎn)品經(jīng)理的日常工作中,獲取需求是一個(gè)項(xiàng)目的始點(diǎn),這是我們和用戶對系統(tǒng)/功能最開始、最直接的溝通。
實(shí)體-聯(lián)系即為E-R圖,這其實(shí)是在數(shù)據(jù)庫建模時(shí)候,也就是數(shù)據(jù)庫設(shè)計(jì)的階段才用到的,但是我會(huì)在需求分析、梳理、設(shè)計(jì)都會(huì)用到。
本節(jié)主要簡述實(shí)體及實(shí)體之間的3種聯(lián)系,幫助我們從正、反兩方面來分析問題,便于我們更清晰業(yè)務(wù)需求。
二、? 實(shí)體
世界由人、物、聯(lián)系組成,其中人和物都是實(shí)體,并且他們都有各自的屬性。
2.1???? 實(shí)體分類
官方解釋:客觀存在并相互區(qū)別的事物稱為實(shí)體。 實(shí)體是一個(gè)抽象名詞,是指一個(gè)獨(dú)立的事物個(gè)體,自然界的一切具體存在的事物都可以看做一個(gè)實(shí)體。一個(gè)人是一個(gè)實(shí)體,一個(gè)組織也可以看做一個(gè)實(shí)體。實(shí)體不是某一個(gè)具體事物,而是自然界所有事物的統(tǒng)稱。實(shí)體可以是有形的,也可以是無形的,實(shí)體也可以是抽象的事物或聯(lián)系
理解點(diǎn):1、客觀存在的人(機(jī)構(gòu),下同)、物,有形的、無形的;2、獨(dú)立的個(gè)體;
角色實(shí)體
人在系統(tǒng)中可以定義為角色實(shí)體,即為參與系統(tǒng)的“干系人”,他們可以是后臺(tái)的系統(tǒng)管理員、負(fù)責(zé)審批的審批員,還是前端的促銷員,普通的用戶,又或者是某個(gè)渠道經(jīng)銷商;他是獨(dú)立的個(gè)體,且在系統(tǒng)中是可以模擬、抽象出來的。
- 他們是否主動(dòng)參與系統(tǒng);
- 是否與其他已經(jīng)定義的角色有重合;
- 他們參與系統(tǒng)主要是想達(dá)到什么目的(即角色權(quán)限);
物實(shí)體
實(shí)體中,除去人,剩下的就是物,我們定義為物實(shí)體。角色實(shí)體可以通過系統(tǒng)達(dá)到什么目的,即系統(tǒng)中的功能,這就是物實(shí)體;在面對對象的解釋中,物實(shí)體其實(shí)就對象的概念;
舉個(gè)栗子:項(xiàng)目管理系統(tǒng),經(jīng)銷商可以發(fā)起項(xiàng)目,由后臺(tái)管理員審核后即可生成項(xiàng)目;
這其中涉及到的角色實(shí)體:經(jīng)銷商、后臺(tái)管理員;物實(shí)體:項(xiàng)目、審核;
2.2 實(shí)體屬性
實(shí)體屬性,即記錄實(shí)體的基本屬性、特性的信息,在產(chǎn)品的線框圖中的頁面元素,在數(shù)據(jù)庫表中對應(yīng)某個(gè)具體的字段。
屬性是構(gòu)成實(shí)體的組成部分,每個(gè)實(shí)體都有屬性,哪怕是一個(gè)編碼也是其屬性,一個(gè)沒有屬性的實(shí)體是不存在的。
其次要說說屬性中的用于區(qū)分同一實(shí)體不同對象的關(guān)鍵屬性,建模中我們稱之為主鍵,主鍵具有唯一性,無論是數(shù)據(jù)庫自增長的序列還是根據(jù)特定規(guī)則生成的具有識別功能的編碼,或者也有可能是多個(gè)字段為主鍵(如N:N的關(guān)系表中),我們都可以定義為主鍵。
日常中我們也常會(huì)遇到,注冊其他網(wǎng)站時(shí),首先讓我們輸入手機(jī)號,如果手機(jī)號已經(jīng)注冊,會(huì)提示不能再注冊,該手機(jī)號已經(jīng)注冊了。其中,這個(gè)手機(jī)號就是用于區(qū)分用戶的唯一識別碼,具有唯一性。
三、? 聯(lián)系
聯(lián)系,即實(shí)體之間的聯(lián)系,他們可以是角色實(shí)體-物實(shí)體,物實(shí)體-物實(shí)體、角色實(shí)體-角色實(shí)體。分為3種關(guān)系,即1-1,1-N,N-N;判斷關(guān)系應(yīng)從正、反兩方面去看,正向即從A-B,反向即B-A;其中A-B時(shí),默認(rèn)A為某一個(gè)固定實(shí)體,看他對應(yīng)幾個(gè)B;同理B-A;
1-1,關(guān)系比較簡單,確定一個(gè),另一個(gè)也隨之確定,轉(zhuǎn)化成數(shù)據(jù)表基本上用一張表來記錄就可以;
舉例:比如部門經(jīng)理與部門的關(guān)系(暫不考慮特殊情況,純舉例),正向:一個(gè)部門經(jīng)理管理一個(gè)部門;反向:一個(gè)部門只有一個(gè)部門經(jīng)理; 一張“部門-部門經(jīng)理”,記錄部門與部門經(jīng)理的對應(yīng)關(guān)系即可(視實(shí)際情況而定);
問題圍繞
- 正向提問,答案是否是唯一;
- 反向提問,答案是否唯一;
1-N,即一對多,一般為隸屬、管理、父子這種關(guān)系發(fā)展而來,轉(zhuǎn)化成數(shù)據(jù)表是將“1”實(shí)體作為“N”實(shí)體的一個(gè)屬性來記錄這種關(guān)系。
舉例:如部門與員工的關(guān)系,正向:一個(gè)部門有多個(gè)員工,確定員工是N;反向:一個(gè)員工只隸屬于一個(gè)部門,確定部門是1,所以部門-員工為1:N;
實(shí)體表為“部門表”“人員表”,在人員表中增加“隸屬部門”,這種“部門-員工”的關(guān)系就可以記錄,共2張表。
問題圍繞
- 正向提問,確定1:N中的N對應(yīng)哪個(gè)實(shí)體;
- 反向提問,確認(rèn)1:N中的1對應(yīng)哪個(gè)實(shí)體;
N:N,即多對多,正向、反向都是多的情況,這種轉(zhuǎn)化成數(shù)據(jù)表的時(shí)候是3張表,2張實(shí)體表+1張關(guān)系表,關(guān)系表記錄的是2個(gè)實(shí)體的對應(yīng)關(guān)系,關(guān)系表是以2個(gè)實(shí)體的主鍵作為主鍵。
舉例:大學(xué)期間的學(xué)生-課程的關(guān)系,正向:一個(gè)學(xué)生可以上多門課程;反向:一門課程允許多個(gè)學(xué)生來學(xué)習(xí),關(guān)系確定為N:N;轉(zhuǎn)化成數(shù)據(jù)表,即實(shí)體表“學(xué)生表”“課程表”,還有“學(xué)生-課程”關(guān)系表。
舉例:張三報(bào)了3門課程,分別是高等數(shù)學(xué)、英語和思想政治;關(guān)系表就會(huì)生成3條記錄,分別為“張三、高等數(shù)學(xué)”“張三、英語”、“張三、思想政治”,是以“人員+課程”作為主鍵;
四、? 寫在后面
對于產(chǎn)品來說,了解E-R建模其實(shí)是培養(yǎng)思維方式,將需求可視化。我們需要做的是多從這個(gè)角度去思考問題,盡可能的考慮到所有場景,這樣在需求交接到開發(fā)的時(shí)候,他們看到的需求是全面且清晰的,而不會(huì)出現(xiàn)他們在建模階段發(fā)現(xiàn)我們遺漏了一些問題而導(dǎo)致需求不明確。我們最了解的是業(yè)務(wù)和需求,如果我們再懂一些建模知識,這其實(shí)可以避免技術(shù)、開發(fā)少走不少彎路。因?yàn)橄褚话愕能浖荆揪蜎]有數(shù)據(jù)庫建模這一說,所以數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì)能否最大程度的貼合需求,是很難說的事情。
一般情況下,我在做獲取、梳理、設(shè)計(jì)時(shí),都會(huì)從這個(gè)方式去思考問題;需求交接到開發(fā)時(shí),我會(huì)提醒他們哪些需要著重梳理,但是不會(huì)干涉數(shù)據(jù)庫的設(shè)計(jì)。
本文到這里,關(guān)于建模知識在梳理流程、設(shè)計(jì)線框圖等后續(xù)的應(yīng)用,這個(gè)后面再開章節(jié)繼續(xù)寫;
- 注1:我們這里所說的實(shí)體、實(shí)體之間的聯(lián)系,只是從產(chǎn)品的角度去度量、思考、表達(dá)系統(tǒng)/功能,幫助我們更好的了解、梳理系統(tǒng)/功能,不要求專業(yè)性的產(chǎn)物,一般通過Axure、visio,甚至系統(tǒng)自帶的畫圖都可以完成;
- 注2:文中內(nèi)容是筆者在日常工作中獲取、分析、設(shè)計(jì)需求時(shí)需考慮的必不可少的一個(gè)環(huán)節(jié),也是有了這些關(guān)系之后才會(huì)產(chǎn)生后面的流程梳理、原型線框圖;對于業(yè)務(wù)復(fù)雜的B端產(chǎn)品更為試用,發(fā)表此文僅限交流,不喜勿噴。
作者:Andy。放松玩,專注思考的B端產(chǎn)品經(jīng)理。
本文由 @Andy 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自PEXELS,基于CC0協(xié)議
好文。想問下N:N的情況:兩個(gè)實(shí)體A和B,從A->B看,一個(gè)A對應(yīng)0,…N;從B->A看,一個(gè)B對應(yīng)0,….N。這種情況也是關(guān)系寫作N:N,然后N取值自然數(shù),生成三張表(A、B實(shí)體各一張,關(guān)系表一張)?
好文。說內(nèi)容沒可看的,只是還沒到階段。
ER建模的目的是為了把需求可視化,所以多介紹一些實(shí)體-聯(lián)系的可視化表示及概念更好
謝謝建議
好標(biāo)題
同意,好標(biāo)題,內(nèi)容嘛,我是不想看了
1、第一次寫,文筆也有限,后續(xù)會(huì)注意、改進(jìn);但真的是寫答主日常中獲取需求方法,不喜歡可以繞道;2、本文的主要目的就是介紹下實(shí)體之間的3種聯(lián)系,這個(gè)是很多產(chǎn)品在產(chǎn)品前期會(huì)忽略的問題,對此沒概念的也請先了解再評論。
你這所謂的三種聯(lián)系,額,我覺得對于產(chǎn)品而言,應(yīng)該就是1+1=2的東西,取的高大上的名字“數(shù)據(jù)庫建?!?,讓大家進(jìn)來了,發(fā)現(xiàn)浪費(fèi)時(shí)間,其實(shí)寫這種東西更浪費(fèi)你自己的時(shí)間。
跪求大神寫一篇讓我們來膜拜 ?? 。文章有更新,歡迎指導(dǎo);
內(nèi)容是不錯(cuò)。標(biāo)題也不錯(cuò)。。。我只是情不自禁夸了標(biāo)題 ??
干活好文章,支持
感謝,比心