資料庫設計的下一個核心步驟,是收集需求。這個階段的目的是明確回答一個問題:
這個資料庫「需要儲存什麼」?又「為什麼要儲存這些資料」?
有些需求可以從現有的系統中推導,例如欄位結構、紀錄格式等等。但很多時候,系統本身無法涵蓋所有背景與業務邏輯,這時你需要做的就是「與人溝通」。
誰能提供資料庫需求的資訊,取決於這個資料庫是為誰設計的:
這些人不一定能告訴你具體欄位名稱或資料型別,但他們能提供關鍵資訊,哪些業務資訊重要?哪些是不必要的?哪些可能是未來的擴充需求?
常見的設計誤區是試圖讓資料庫涵蓋所有內容。實際上,確定哪些資料是「需要存的」,哪些是「可以省略的」,才是設計關鍵。
例如:
這些都需要經過訪談與確認,不能自己猜。
將這些需求清楚記錄下來,不論是用筆記、表格還是畫圖,對後續設計都會很有幫助。
某些系統會要求能夠追蹤資料的變更歷史(Audit Trail),常見於需要審計的系統中,例如:
若系統有這種需求,就必須在資料表中額外設計欄位,例如 updated_at、updated_by、change_source 等,或採用版本紀錄表來儲存異動記錄。
收集需求的本質,是釐清:
這些答案,不只來自系統,更多來自人與業務背景。找到對的人、問對的問題、留下可追溯的紀錄,是成功的資料庫設計流程中不可或缺的一步。