關於資料庫欄位的一點思考

設計了很多資料庫,很多表,前幾天想了下欄位的設計,

比如我們要設計一個商品表,商品的業務屬性有名稱,品牌,價格,生產商等,

那這個表的設計很簡單

表名:Product

欄位: id 唯一主鍵

            name 名稱

            brand 品牌

            price 價格

            manufacturer 生產商

這個表可以說就完成了,下面列出一些表的相關需求

1.系統中需要單獨記錄生廠商,即有一個生產商的表,那麼商品的生產商

就變成了一個外鍵manufacturerId,關聯生產商表

 

2.需要知道所有商品什麼時候創建的,最後一個是什麼時候修改

增加欄位createTime 創建時間, updateTime 更新時間,

 

3.商品的數量很多,生產商也很多,並且需要經常根據生產商的名字做模糊查詢,為了提高查詢效率

直接在商品表增加生產商名字欄位,manufacturerName 生產商名字

 

4.商品的修改需要審核才能生效,審核中的商品不能修改

增加欄位status 狀態,提交審核後商品的狀態變為審核中,根據商品狀態限制操作

 

現在商品表變成下面的樣子

  id 唯一主鍵

  name 名稱

  brand 品牌

  price 價格

  manufacturerId 生產商

  manufacturerName 生產商名字

  createTime 創建時間

  updateTime 更新時間

  status 狀態

可以給這些欄位分下類,

name,brand,price,manufacturerId是業務的必須欄位,即業務欄位,

manufacturerName是為了方便提高效率加的,即冗餘欄位

createTime,updateTime 是為了記錄用戶的操作,即記錄欄位

status 決定了對數據可以做操作,即邏輯欄位

總結下,資料庫表的欄位可以分為四類,業務欄位,冗餘欄位,記錄欄位,邏輯欄位

 

Tags: