数据库70多张表设计的一些思考…
數(shù)據(jù)庫70多張表設(shè)計(jì)的一些思考…
昨天在一次研討會(huì)上,一同志說他為甘肅某高校做了一個(gè)建筑部門的管理網(wǎng)站用了足足70多張表,我一聽一驚,隨口來句,這哥們扯吧!
我認(rèn)為學(xué)校的單個(gè)部門業(yè)務(wù)不論多么復(fù)雜,這么多表也并不利于實(shí)際系統(tǒng)開發(fā),況且單個(gè)部門也不可能有那么復(fù)雜的業(yè)務(wù)。那么站在這哥們的角度理解,理由只有一個(gè),他把表拆分的非常的細(xì)致,單個(gè)表字段很少,功能非常單一。
好像也可以理解,但是70多個(gè)表,俺從業(yè)多年幾乎也沒有見過幾個(gè)如此龐大的工程。總是感覺怪怪的,于是總想從理論上分析下他的這樣設(shè)計(jì)是否合理。數(shù)據(jù)庫設(shè)計(jì)相信大部分開發(fā)人員都知道要遵守設(shè)計(jì)范式咯,這部分內(nèi)容可以參考我的上篇范式文章,那么我能否從范式著手,做個(gè)分析呢?問題來了,我也有些困惑了,下面講講得出的結(jié)論:
范式作為數(shù)據(jù)庫設(shè)計(jì)的理論基礎(chǔ),其實(shí)并不完善,有些情況不適合實(shí)際開發(fā)。范式的指導(dǎo)原則是盡量做到清晰、簡單、明了,把復(fù)雜的關(guān)系給拆簡單了。但是問題出來了,實(shí)際開發(fā)要考慮高效,簡捷,盡量避免多表查詢。而這一原則恰恰和范式理論沖突,那么如何去做呢?我想每個(gè)人都會(huì)有不同的做法,當(dāng)然最重要的是自己工作經(jīng)驗(yàn)的積累,和對實(shí)際業(yè)務(wù)的了解,去設(shè)計(jì)真正適合自己的數(shù)據(jù)庫結(jié)構(gòu)。
這是一位高人的說法:
所謂范式指的是設(shè)計(jì)高效的方便擴(kuò)展數(shù)據(jù)庫的準(zhǔn)則,但是實(shí)際之中也只是作為一個(gè)參考,因?yàn)榘凑諛?biāo)準(zhǔn)設(shè)計(jì)范式,查詢很復(fù)雜,效率不高,不一定適合實(shí)際開發(fā)。那么實(shí)際的工作之中,對于實(shí)際數(shù)據(jù)庫設(shè)計(jì)只有一個(gè)原則:“根據(jù)業(yè)務(wù)盡可能的減少多表查詢”。
?
最后,對于70多張表的哥們來說,只能說符合范式的簡單化,但是實(shí)際中70多個(gè)表的多表聯(lián)合查詢對于開發(fā)人員來說并不是一個(gè)good idea。
?
歡迎大家一起討論…
?
總結(jié)
以上是生活随笔為你收集整理的数据库70多张表设计的一些思考…的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库设计范式实例解析
- 下一篇: MATLAB有关数字信号处理的一些方法