麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

數(shù)據(jù)庫(kù)的反范式設(shè)計(jì)

2024-07-21 02:52:56
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

范式設(shè)計(jì)可以消除數(shù)據(jù)庫(kù)的數(shù)據(jù)冗余及插入異常,但是過(guò)分的范式設(shè)計(jì)可能導(dǎo)致數(shù)據(jù)查詢(xún)時(shí)需要關(guān)聯(lián)多張表,導(dǎo)致數(shù)據(jù)庫(kù)查詢(xún)效率下降,因此在實(shí)際工作中,需要適當(dāng)?shù)姆捶妒皆O(shè)計(jì)。

舉例說(shuō)明,某在線(xiàn)圖書(shū)銷(xiāo)售網(wǎng)站,希望實(shí)現(xiàn)如下功能: 1)用戶(hù)登錄 2)用戶(hù)管理 3)商品展示 4)商品管理 5)供應(yīng)商管理 6)在線(xiàn)銷(xiāo)售

符合三范式的數(shù)據(jù)庫(kù)設(shè)計(jì)

用戶(hù)信息表 : 用戶(hù)名(主鍵),密碼,姓名,手機(jī)號(hào),注冊(cè)日期

圖書(shū)信息表 : 圖書(shū)名稱(chēng)(主鍵),出版社名詞,圖書(shū)價(jià)格圖書(shū)描述,作者

分類(lèi)信息表 : 分類(lèi)名詞(主鍵),分類(lèi)描述

圖書(shū)分類(lèi)表 : (圖書(shū)名詞,圖書(shū)分類(lèi))(主鍵)

供應(yīng)商信息表:出版社名詞(主鍵),地址,電話(huà),聯(lián)系人,銀行帳號(hào)

訂單表:訂單編號(hào)(主鍵),用戶(hù)名,下單日期,物流單號(hào)

訂單圖書(shū)關(guān)聯(lián)表 : (訂單編號(hào),圖書(shū)名稱(chēng))(主鍵), 商品數(shù)量

在如上的數(shù)據(jù)庫(kù)設(shè)計(jì)中,如果需要查詢(xún)每個(gè)用戶(hù)的消費(fèi)總金額

select 用戶(hù)名, sum(c.圖書(shū)價(jià)格*b.商品數(shù)量)

from 訂單表 a join 訂單圖書(shū)關(guān)聯(lián)表 b on a.訂單編號(hào)=b.訂單編號(hào)

                          join 圖書(shū)信息表 c on b.圖書(shū)名稱(chēng)=c.圖書(shū)名稱(chēng)

group by 用戶(hù)名

以上查詢(xún)需要關(guān)聯(lián)3張表,因?yàn)樵诰€(xiàn)銷(xiāo)售經(jīng)常會(huì)有促銷(xiāo)活動(dòng),商品價(jià)格時(shí)而會(huì)波動(dòng),在以上設(shè)計(jì)中,如果圖書(shū)價(jià)格發(fā)生變化,則查詢(xún)結(jié)果也會(huì)發(fā)生變化。

如果需要查詢(xún)下單用戶(hù)和訂單詳情

select  a.訂單編號(hào) a.用戶(hù)名 c.圖書(shū)名稱(chēng) b.商品數(shù)量 c.圖書(shū)價(jià)格

from 訂單表 a join 訂單圖書(shū)關(guān)聯(lián)表 b on a.訂單編號(hào)=b.訂單編號(hào)

                         join 圖書(shū)信息表 c on b.圖書(shū)名稱(chēng)=c.圖書(shū)名稱(chēng)

以上查詢(xún)也需要關(guān)聯(lián)3張表格。

反范式設(shè)計(jì) ,在 訂單表  和 訂單圖書(shū)關(guān)聯(lián)表 中增加冗余數(shù)據(jù)

訂單表:訂單編號(hào)(主鍵),用戶(hù)名,下單日期,物流單號(hào),訂單金額

訂單圖書(shū)關(guān)聯(lián)表 : (訂單編號(hào),圖書(shū)名稱(chēng))(主鍵), 商品數(shù)量,圖書(shū)價(jià)格

在如上的數(shù)據(jù)庫(kù)設(shè)計(jì)中,如果需要查詢(xún)每個(gè)用戶(hù)的消費(fèi)總金額

select 用戶(hù)名,sum(訂單金額) from 訂單表 group by (用戶(hù)名)

需要查詢(xún)下單用戶(hù)和訂單詳情

select  a.訂單編號(hào) a.用戶(hù)名 b.圖書(shū)名稱(chēng) b.商品數(shù)量 b.圖書(shū)價(jià)格

from 訂單表 a join 訂單圖書(shū)關(guān)聯(lián)表 b on a.訂單編號(hào)=b.訂單編號(hào)

反范式設(shè)計(jì)后,因?yàn)?訂單圖書(shū)關(guān)聯(lián)表 已經(jīng)保存了當(dāng)時(shí)的商品價(jià)格,所以商品價(jià)格波動(dòng)并不影響查詢(xún)結(jié)果,而且減小查詢(xún)需要關(guān)聯(lián)的表。

反范式設(shè)計(jì)需要更具具體業(yè)務(wù)實(shí)際決定,將經(jīng)常使用的業(yè)務(wù)表進(jìn)行合理的反范式設(shè)計(jì)可以提高數(shù)據(jù)庫(kù)的查詢(xún)效率。

在實(shí)際的業(yè)務(wù)工作中,一般不使用外鍵,因?yàn)橥怄I會(huì)在每次數(shù)據(jù)插入時(shí)進(jìn)行合法性校驗(yàn),這樣回極大的拖累數(shù)據(jù)庫(kù)的插入效率。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧产日产国产精品99 | 天天鲁在线视频免费观看 | 91网站免费在线观看 | 黄色网欧美 | 福利在线免费视频 | 香蕉国产9 | 欧美中文字幕一区二区 | 9797色| 日韩在线激情 | 国产一级桃视频播放 | 久久成人福利 | 毛片视频在线免费观看 | 欧美精品一区自拍a毛片在线视频 | 大学生一级毛片在线视频 | 久久久av影视 | 亚洲成人福利电影 | 成人男女啪啪免费观看网站四虎 | 国产精品国产三级国产在线观看 | 亚洲精品一区二区三区大胸 | 欧美成人一区二区三区 | 国产在线精品一区二区三区不卡 | 国产色91 | 亚洲精品a级 | 美国av片在线观看 | 国产一级毛片高清视频 | 久久精品小短片 | 香蕉在线播放 | 免费观看一区二区三区视频 | 午夜精品久久久久久中宇 | 黄色av片三级三级三级免费看 | 欧美成人理论片乱 | 精品免费久久 | 欧美亚洲综合在线 | 亚洲成人福利在线 | 成年免费大片黄在线观看岛国 | av资源在线天堂 | 激情综合网俺也去 | 小视频成人 | h视频在线播放 | 国产精品久久久久久久久久电影 | 国产精品成人免费一区久久羞羞 |