1. 程式人生 > >創新課程管理系統資料庫設計心得

創新課程管理系統資料庫設計心得

因為創新課程管理系統這一個專案,是一個從無到有,沒有標準可以去參考的一個專案。

這個專案專門針對該課程進行設計,所以需求的功能點很多,因此資料庫有多次設計,更改再推翻重新設計再更改。

因為使用者有多個型別,系統管理員,學校管理員,老師,助教,學生。

一開始的時候想把每一個都單獨設計為一個表,然後登陸的時候選擇身份後直接在對應的表裡面進行查詢即可。所以當時的使用者表是如下的:

後來經過小班討論課,又覺得可以把所有的使用者全部放在一個表裡面,即一個User表裡面有所有使用者的資料,不過這樣會導致許多欄位的空的。

所以最後再向老師請教完之後,並且瞭解了更多的資料庫設計相關知識後,判斷使用者裡面極大部分為學生,而學生和助教的欄位又大部分會相同,所以學生和助教做一張表,只需要加一個類別欄位區分是學生還是助教,而其他的使用者都可以另外放一張表。

因為功能點比較複雜,雖然在我們這一期的專案中不需要全部實現,但是資料庫卻需要全部先設計出來。最終的結果如下:

 

 

資料庫設計心得:設計資料庫的話,如果是比較簡單的,比如說只有三,四個表,那還不太會出現漏洞,而對於比較複雜的資料關係,那麼設計的時候往往就會出現顧首不顧尾的問題。而且還需要考慮的就是欄位的域約束,是否能為空等問題。

        所以最後慢慢發現設計資料庫的主要的方式還是跟隨著業務邏輯,尤其是將自己代入到使用者中去。假設自己是某一類使用者,然後對於我這個使用者,我需要做一些什麼樣的操作?這一些操作的資料是否要保留下來?保留下來的意義在哪裡?只要理清楚了這三個問題,那麼對於自己這個使用者型別就可以有一個比較清晰的資料庫儲存資料的思路。