今天,是我實習的第三個星期,也就是星期一,公司在趕乙個專案,短時間內需要快速融入公司的專案,了解整個大概,主要是要考自己能夠快速看懂,並且理解。
在這過程中,看了這個專案的資料庫後,我對資料庫方面有了新的認識,而不單單是在學校所學的,在學校的時候,只懂得跟著書本上走,顯示分析出整個系統的實體,然後畫出所有的系統用例圖,再根據用例圖找出所有實體之間的聯絡,畫出e-r圖,再建立相應的表。實體與實體間的聯絡涉及到了是否要建立中間表,三種關係分別有一對一,一對多,多對多,一對一的額外屬性可以新增於任意一方,一對多的額外屬性新增於多的一方,多對多的關係則建立一張關聯表(之所以建立關聯表是因為怕造成資料冗餘)。這就是還未實習前最原始的想法了。
但其實,上面這個法則並不是實際專案中真正需要的,儘管它也能實現資料庫的設計。但是,在效能等方面是有很大影響的,關聯表雖然不會造成資料冗餘,但由於其關聯性,我們會進行多層查詢,這樣就會降低資料庫的查詢效率,還會加重伺服器負擔,所以,由於小專案中所涉及到的實體等相關資料比較少,就盡量不要建立關聯表,譬如可以將多對多的額外屬性放在合理的一方。有一種情況就是,譬如使用者『、訂單、模板和元件四者之間的關係,模板和元件都是實體,而且是不同的實體,每個訂單有不同的元件和模板,使用者和訂單是一對多,訂單和模板是多對多,訂單和元件是多對多,模板和元件是一對多,並且每個訂單都要包含模板和元件,那麼問題來了,訂單對於模板和元件來說都是多對多,額外的屬性假設都只有數量這個屬性,按照以前的思維,我會建立兩張關聯表,但是其實建立一張關聯表就夠了,可以直接將訂單跟模板之間的額外屬性直接新增在訂單跟元件的關聯表上,或者反過來也一樣,這樣假設或許有的人會吐槽不太合理,但是暫時想不到別的假設了。
資料庫設計心得
在培訓學校學習期間,老師一直很重視培養我們的 在這裡只指關聯式資料庫 資料庫設計能力的提高,在軟工期間很注意,現在的專案練習中又重點訓練,這是我對資料庫的設計不敢輕視。第乙個問題,資料庫的表依據什麼來建立。第二個問題,乙個優秀的資料庫具備哪些標準。我想,首先以滿足業務要求為底線,業務需要操作的資料及...
資料庫設計心得
例子 alter table bx message 表名 addcolumn sendchannel 欄位名 int 4 null comment sendchannel的型別是int,它的標識是從0開始的,這樣帶來的問題就是,我在使用mvc的模型驗證時 required 沒有傳sendchanne...
資料庫設計心得
資料庫設計心得 對於最開始資料庫的設計,我們小組是一無所知的,不過根據軟體工程創新課程的老師授課內容,我們也有了大致的思路,首先我們應該按照之前做的需求分析文件,對著需求乙個個的思考,資料庫應該存什麼資料才能完成這些需求,應該怎麼去存這些資料。隨著我們乙個個需求分析完,不僅資料庫的要存放什麼資料明白...