PM 轉職 AI FDE Field notes · Taipei

首頁 · 開發觀念基礎 · 第 4 課,共 6 課

開發觀念基礎

資料庫在記什麼

資料庫記的是以後還要被問到的事實。不是每個畫面上出現過的字,都值得被記下來。

表、主鍵、關係、查詢

把資料庫想成一組表,不要先想成一個很會搜尋的大腦。訂單是一張表,退貨申請是另一張表。每一列要有一個主鍵,讓你指得到「就是這一筆」,而不是「好像是昨天下午那筆」。關係是兩張表怎麼連:這張退貨申請指回哪一張訂單。查詢是你用一個問題把列找出來:這張訂單有沒有已經在走的退貨。

PM 不需要自己設計完整的表。你需要會問:這件事實的主鍵是什麼?它跟哪一件舊事實有關?明天誰會用什麼問題來找它?這三問問完,很多「先存著以後再說」會自己現出原形。

什麼該存

該存的是做成決定時所根據的事實,以及決定本身。訂單編號、下單日、當時的狀態、這次結論是可退還是轉人工、是誰在什麼時候按的。這些明天對帳、客訴、值日生回頭看,都用得上。

不該存的,是只對這一瞬間有意義的東西:按鈕轉沒轉完、她滑鼠停在哪個欄位、模型為了講得比較客氣而加的形容詞。也不該存你沒有資格留的東西,例如完整的卡號、別的系統給你的長期鑰匙。留了,就變成以後每次出事都要解釋為什麼它在這裡。

查得到,和記對了,是兩件事

客戶說「我們要有資料」時,先問他明天要問什麼問題。問題不清楚,表就會變成雜物間。退貨這個例子真正要問的通常是:這張訂單退過沒有、結論是誰下的、當時訂單是什麼狀態。這三個問題答不出來,就算你存了很多對話,也只是一袋找不到的字。

還有一種錯:把同一件事實存兩份,又沒講好聽誰的。畫面上顯示一個金額,資料庫裡另有一個金額。對帳的那天,你會希望自己早點決定哪一份是主鍵指到的那份。

範例 · 退貨申請這一列最少要有什麼

  • 主鍵:這一筆退貨申請自己的編號,不是訂單編號。
  • 關係:它指回哪一張訂單。沒有訂單就沒有這一列,改走轉人工,不硬建。
  • 要記住的事實:結論、原因代碼、時間、操作的人。
  • 不要記住:畫面轉圈的過程、模型多寫的客套話、卡片的完整號碼。

練習

為你的第一版寫三個「明天一定會問」的問題。每個問題旁邊寫:答案躺在哪一類事實裡。

再寫兩樣你決定不存的東西,以及不存的理由。理由要是「沒人會拿它做決定」或「我們沒資格留」,不要寫「以後再看」。

完成的時候

  • 你能用表、主鍵、關係解釋退貨申請和訂單怎麼連。
  • 你刪掉至少一樣不該進資料庫的東西,並說得出刪它不會讓明天的問題變瞎。