近期遇到了不少需求是與資料存儲相關的需求。在設計資料表時,注意到有些共通的屬性幾乎在每一個資料表中都會用到。
然而,當在給予這些屬性命名的時候,然而在命名的時候經常會根據當下腦袋的狀態而有些微差異(例如用於紀錄「資料建立時間」的欄位命名,可能會用 create_time、create_at、since)。
當日後再回來看的時候總是會有那麼點小遺憾,明明具有同樣意義的欄位卻有著不同的名稱,偏偏因為牽連到 API、UI 專案的關係,想改也不能直接改,雖然對功能沒有影響,但就是讓人感覺不太舒服。
因此為了建立起良好的命名習慣,就用這篇貼文來記錄常用到的資料庫欄位命名規則並作為日後參考。
| 欄位名稱 | 說明 | 建議添加前綴 | 其他命名方案 |
|---|---|---|---|
id |
唯一識別欄位 | 是 | sid |
name |
名稱、標題 | 是 | title |
content |
說明、內容 | 是 | description |
created_at |
建立時間 | ||
updated_at |
更新/異動時間 | ||
status |
資料狀態,例如 啟用、停用 或是處理進度等 |
是 | |
sort_rank |
資料排序 | ||
is_deleted |
資料是否已被刪除,適用於採用「軟刪除」策略的系統 | ||
deleted_at |
刪除時間,適用於採用「軟刪除」策略的系統 |
建議添加前綴:使用資料表名稱的一部分作為前綴方便識別。如果資料表名稱是 User 則欄位名稱用 user_id 命名
有些字因為系統會使用到的關係,為了避免跟系統用字完全一樣而產生一些程式碼閱讀或是開發上的問題,所以加上前綴來迴避這個狀況。如果在跨資料表查詢時經常會使用到時,也可以添加前綴以便於辨識。