做好資料庫設計,做好資料庫
每一個人都有一個武俠夢。我們都羨慕有降龍十八掌的喬峰,羨慕有九陽神功護體的張無忌,羨慕有易筋經和獨孤九劍的令狐沖,羨慕傳說中的獨孤求敗……
其實,他們的成功有一個共同的秘訣:那就是他們都有很深厚的內功基礎。有了深厚的內功做基礎,耍起武功招數來,就會得心應手,順手拈來。隨便扔一個石子,就是彈指神通。
我想說的是:一個軟體系統中,良好的資料庫設計,就好比一個系統有了好的內功。好的資料庫設計,能夠更好的應對需求變化,活兒越幹越輕鬆(活兒好啊);而一個垃圾的資料庫設計,越是認真的投入精力去做,你做起來也會越費力,這叫南轅北轍。而且,只要需求稍微一變,你就跟著大動幹戈。
相信很多公司加班,很重要的原因就是資料庫設計的不夠靈活。
可以說,良好的資料庫設計,是一個系統成功的二分之一。這句話一點不假。那麼,我們不禁要問:怎麼做才能做出量好的資料庫設計呢?
其實,我也很想知道答案。我也不敢拍著胸脯說自己做的設計百分之百的好。不過,我對資料庫設計,有一點點自己的想法,分享出來,望大家勿噴。
1、要深刻理解三範式。
提起三範式,如果你腦子裡沒有立馬反映出來那三張圖的話,得,你也別談好的設計了。先去學學資料庫的相關知識吧。能夠設計出來的資料庫,三範式的知識必須爛熟於心。熟才能生巧。
有些人設計資料庫,只圖自己的方便,在這添加一個欄位,在哪添加一個欄位。這裡,我想說的是:如果你沒有足夠充分的理由,請嚴格遵守三範式設計資料庫。
有些時候,僅僅是三範式還不夠的話,我們還要考慮第四範式以及後面的一些範式規範。
為什麼這麼說呢?因為我們都知道,需求基本上肯定是會變的。去掉那些冗餘欄位,才能更好的做到統一管理。
而且,更重要的是,我們遵循範式設計資料庫,基本上能夠把最主要的欄位確定下來,儘管欄位將來有增減,那都不是硬傷,無傷大雅。
關於遵循範式設計資料庫,相信很多人都能認識到它的重要性,而且也能較好的做到這一點。可以說理解三範式是最基礎的。
2、深刻理解業務需求
一個好的資料庫設計,一定是非常符合它的業務需求的。原因很簡單,例子也很好舉:鞋子穿起來好看不好看,大小正好才好;錢學森懂得再多,適應了國情才能造出中國自己的原子彈;生產關係,要符合生產力的發展需求……
所以,想做好資料庫設計,首先需要做好需求分析工作。
要想設計出來張弛有度,應對需求變化遊刃有餘,不會有大方向偏差的資料庫設計,僅僅理解三範式是遠遠不夠的,深入理解需求非常非常之重要。
你心裡要明白,哪些地方資料量會很大,怎樣設計才能做到更好的規避;如果大資料量無法規避
………………(未完待續:困了,改天繼續寫完。。。)………………
產品經理是不會為他昨天說的話買單的,你做的系統,不能應對變化,他就會認為你技術不行。