標籤:重構 sqlserver 主鍵外鍵 視圖
一.背景
原來學過資料庫的相關內容,只是形式上的,從來也沒有實踐過,徐徐飄過而已,如今在做機房時,很多知識需要用到視圖,才開始去慢慢的實踐。
視圖:我理解的就是一張表,它把我們所需要的某個表或某幾個表中的部分資訊提取出來,形成了一張臨時的表。
它主要有兩個優點:1.簡單,它呈現給我們的資料就是我們想要的資料,沒有多餘的。
2.安全,提供給使用者它們許可權範圍內的資料
我為什麼會用到視圖?舉一個簡單的例子,在查詢使用者資訊時,我們可能會用到兩張表中的內容。那麼這個時候我就需要將兩張表中我需要的資料提取出來形成一張虛擬表,當我使用的時候,我就可以直接從這張虛擬表中看到我想要看的資料。這張虛擬表就是視圖。
二、實戰
但是這次做的時候遇到一些小問題,如果在一張表中每個資料記錄只有一條,而另一張表中相應的資料卻對應者多條,此時如果直接建視圖,得到的結果會出現很多重複。
如何解決呢?
當然是利用主鍵和外鍵來進行約束。這樣在視圖中會自動歸納相應的資料記錄。在外鍵表中存在的記錄會自動與主鍵表中的匹配
三、外鍵的建立右擊資料庫圖表:
在添加的表上右擊關係:
點擊表和列規範,設定主鍵表和外鍵表的列名
這裡必須要設定好,上面表中標出的“Insert和Update規範”中的幾種規範。剛開始我選的是不執行任何操作,但是當我刪除主鍵表中的記錄時,就會報錯,因為外鍵表中依賴的記錄消失了,那麼就不存在這個外鍵值了,所以外鍵表中的記錄也必須刪除,所以當涉及到刪除操作時,我們應該選擇“級聯”,也就是外鍵表中的資料隨著主鍵表的更新而更新。
具體設定如下:選擇自己想要設定的列名即可
這樣兩張表的主鍵外鍵關係就大致建好了
四、視圖的建立視圖的建立應該是比較容易的,只要在視圖下選擇建立,選擇自己想要的列名即可。在機房中使用視圖時,我們應該注意的幾點,我們會將視圖看做一張表,所以在編寫代碼時,會建立一個實體類,來存放我們所需要的列資料。在D層查詢表時,直接查詢我們所建立的視圖名稱即可,一般以V_開頭。
以上是關於視圖和主外鍵使用的一些相關操作,通過重構鞏固了以前學過的知識,對SQL server中的知識又多了幾分瞭解。