數據庫表設計完成後,在實際的使用過程中,大多數時候一張表是無法將業務數據展示完整的。這個時候就需要多個表連接查詢。
在以前寫代碼的時候,遇到這樣的情況,我一般會新建一個視圖,然後再通過視圖查詢數據。使用起來很方便。但是在後期維護時就會發現,視圖與代碼裏的查詢,本質上是分離的,當視圖建的多了,項目維護時間久了之後,很多視圖到底還有沒有用,就很難確定了。同時,需要修改視圖引用的表時,就需要級聯修改各個視圖,非常麻煩。而且很多視圖僅僅在一個業務裏使用。其他地方完全沒有用。
後來我就想,我爲什麼不在查詢的時候直接使用關聯表查詢,而放棄使用視圖呢。這樣所有的數據都是來源於表。業務用到哪些表都是一目瞭然。然後我就把所有的視圖刪掉了。所以從視圖查詢數據的地方全部換成了直接關聯查詢。
再後來,我就發現,我有點矯枉過正了。有些視圖,非常的通用,這類視圖應該作爲視圖存在在數據庫裏,這樣在使用的時候會非常的方便。
所以現在,我會把通用的視圖創建在數據庫中。而其他的數據查詢,都使用聯合查詢來查。