提升產(chǎn)品經(jīng)理“技術(shù)思維”:學(xué)習(xí)數(shù)據(jù)表結(jié)構(gòu)知識

9 評論 20904 瀏覽 233 收藏 9 分鐘

產(chǎn)品轉(zhuǎn)技術(shù)難度比較大,學(xué)習(xí)數(shù)據(jù)表結(jié)構(gòu)就門檻低很多,對產(chǎn)品設(shè)計的作用也很明顯。本文會簡單介紹一些產(chǎn)品設(shè)計中會用到的數(shù)據(jù)表結(jié)構(gòu)方面的思考,希望對各位有所幫助。

程序是怎么運行的呢?

簡單來說,就是去指定的位置(表)取數(shù)據(jù),完成運算,放到指定的位置(表)存起來或展示出來。

那么,怎么保證取到的/存到的數(shù)據(jù)是按我們預(yù)想的方式來的呢?這就涉及到表結(jié)構(gòu)問題了。

數(shù)據(jù)表是由表名、表中字段、字段內(nèi)容組成。本文主要圍繞字段劃分及字段定義兩個部分,介紹在產(chǎn)品設(shè)計中需要用到的表結(jié)構(gòu)知識。

一、字段分類

要完成一個流程(運算),我們需要諸多數(shù)據(jù)(字段),這么多字段是一張表還是多張表呢?

我們可以以商品上架為例,簡單分析一下。

比方說,倉庫現(xiàn)在還有可口可樂50個,進價2.5元,售價3.5元。

1號貨架只剩5個可樂,小王在19/6/24日15:20:12向該貨架上架20個,預(yù)計放在貨架第4層;因為新貨架促銷,打折價3元。

首先,所有相關(guān)信息排列:

實際業(yè)務(wù)會比這個字段更多,全在一張表里儲存雖然看上去清晰,但是缺點也很明顯——因為將主體相關(guān)的屬性、流水、維度等數(shù)據(jù)全部混在一起,勢必造成大量的數(shù)據(jù)冗余。

我們按數(shù)據(jù)類型拆為屬性表和流水表。

其中屬性表分為商品SKU和貨架;流水表為上架操作過程。整理后如下:

首先,看一下商品表:

(1)商品屬性(類別,名稱等)跟商品流水(進貨、出貨)混在一起,可以進一步拆分。

(2)“倉庫剩余個數(shù)”,可能進貨的要改、上架的要改、盤點的要改,多個地方都會對這個字段作用。這種情況可以通過實時計算,比寫入覆蓋的方式更為準確。

所以調(diào)整后會改為:

注:前臺展示的余量實時計算,不落表。

可以看到商品流通和之前的上架表非常類似,只相差一個貨架編號。

假設(shè)我們把倉庫看做一個大貨架,設(shè)為0,兩表合并整理后:

再來看貨架表,“商品種類數(shù)”適用實時計算,不落表。(類似前文倉庫余量計算)。

還有一個問題非常突出——商品詳情這欄內(nèi)容特別多。

非結(jié)構(gòu)化數(shù)據(jù),不便處理,且與其他表內(nèi)容重復(fù)(比如商品名稱和售價)。同樣的字段最好只在一個地方維護,避免表之間的數(shù)據(jù)沖突。商品名稱很明顯放在商品屬性里。

那售價這個字段應(yīng)該放在商品還是貨架上的商品詳情?

這其實跟業(yè)務(wù)模式相關(guān),放在商品里方便全局管理,但是單個貨架不能實現(xiàn)差別化定價;相反,放在貨架上,同一商品在不同貨架上可以設(shè)置不同售價,缺點是修改調(diào)整比較困難。

根據(jù)我們的業(yè)務(wù)情況,售價主要是統(tǒng)一管理,放在了商品屬性;折扣主要是單個貨架進行,所以折扣價放在了貨架的商品詳情。

調(diào)整后如下:

數(shù)據(jù)結(jié)構(gòu)確認之后,頁面內(nèi)容設(shè)計就比較清晰了:

【商品】

【貨架】

【貨架詳情】

【商品流轉(zhuǎn)】

注:在實際產(chǎn)品中,頁面入口可能帶有一些參數(shù),比如上圖如果是點擊“進貨”按鈕的彈出框,就無需再手動選擇交易類型。

二、字段類型

前面從大的范圍上介紹了字段的劃分,細節(jié)上單個字段的類型、長度也需要加以關(guān)注。

一些常用的字段類型:

在字段類型上,我也遇到過一些坑,舉兩個例子說明一下:

我在P2P公司上班,用戶會發(fā)布很多借款,有個字段是表示借款類型,比如listingtype。

我們絕大多數(shù)的標都是普通標,穿插一點點其他類型??傤愋筒怀^5種,所以當時字段類型是tinyint,范圍0-255。

后來有段時間我司發(fā)展與合作機構(gòu)的合作標,當時我做配置系統(tǒng),設(shè)計成每個合作單位分配一個listingtype。

跑著跑著有一天,研發(fā)反應(yīng)過來了,說:總數(shù)就255,你再加就爆了。

后來的解決辦法是將合作標統(tǒng)一一個listingtype,然后同一類型下,每家單位再各自分配一個sublistingtype。

再舉一個例子,還是這個合作標的時候,上線之后,利息計算錯誤。研發(fā)查了一圈,是建表的時候利率字段用了默認的DECIMAL(18,0),導(dǎo)致導(dǎo)入數(shù)據(jù)時被四舍五入。

三、總結(jié)

當然,你可以說:表結(jié)構(gòu)不是研發(fā)自定義的嗎?但這也不能全是研發(fā)的鍋,一是研發(fā)可能不清楚整個產(chǎn)品的規(guī)劃,或者說隨著業(yè)務(wù)變化,原本適合的字段類型變得不再適合。

另一方面,并不是所有產(chǎn)品都是從零開始,有的可能是后來加入進行老產(chǎn)品的版本迭代。這種產(chǎn)品在設(shè)計之前,了解原先的表結(jié)構(gòu)及字段類型,就能避開很多坑。而且相比前端展示層,數(shù)據(jù)層上的坑,一般都是大坑,改起來也困難更多。

大家都知道,產(chǎn)品有技術(shù)背景會更方便溝通。技術(shù)入門也許太難,表類知識入門就簡單多了。

本文拋磚引玉,希望大家能往此方向去提煉一下自己,相信會給產(chǎn)品工作帶來較大助益。

 

作者:文二水,微信公眾號:文二水

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 對于我這個小白來說有幫助多了

    回復(fù)
  2. 贊,對產(chǎn)品小白來說很有幫助,常常聽到研發(fā)說建表建表,今天終于有初步的認識了,設(shè)計界面也不再是隨意設(shè)定啦。 ??

    來自湖北 回復(fù)
  3. 咦,大家都在長泰么??
    excel還能更進一步…

    回復(fù)
  4. 對于初級小白有一定幫助。 ??

    來自廣東 回復(fù)
  5. 沒看懂,也怎么辦?

    回復(fù)
  6. 字段類型里面的字節(jié)數(shù)對嗎?一個數(shù)字就已經(jīng)占2字節(jié)了吧

    來自中國 回復(fù)
  7. 我們現(xiàn)在的功能設(shè)計就是寫到表字段了,以及取值邏輯 ?

    來自北京 回復(fù)
  8. 點贊,尤其后臺產(chǎn)品,很多時候事先頁面并不是關(guān)鍵的,建表后通過sql插入也可以解決很多問題,如果該功能使用不頻繁的話

    來自浙江 回復(fù)
  9. ??

    回復(fù)