擁有5星評級數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更高效的使用
導(dǎo)讀:1建站知識產(chǎn)品數(shù)據(jù)庫設(shè)計時,經(jīng)常遇到5星評價的情況,數(shù)據(jù)表如何設(shè)計才能即保證查詢效率,又能減少數(shù)據(jù)冗余呢? 初步設(shè)計思路如下,請大家指正。 一,最終效果, 擁有5星評級數(shù)網(wǎng)站建設(shè)教程企業(yè)網(wǎng)站建設(shè)。
產(chǎn)品數(shù)據(jù)庫設(shè)計時,經(jīng)常遇到5星評價的情況,數(shù)據(jù)表如何設(shè)計才能即保證查詢效率,又能減少數(shù)據(jù)冗余呢?
初步設(shè)計思路如下,請大家指正。
一,最終效果,
擁有5星評級數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更高效的使用?
二,表結(jié)構(gòu)
復(fù)制代碼 代碼如下:
CREATE TABLE IF NOT EXISTS `books` (
`id` int(8) NOT NULL auto_increment,
`title` varchar(50) NOT NULL,
`vote_1` int(8) unsigned NOT NULL,
`vote_2` int(8) unsigned NOT NULL,
`vote_3` int(8) unsigned NOT NULL,
`vote_4` int(8) unsigned NOT NULL,
`vote_5` int(8) unsigned NOT NULL,
`avgrate` int(8) unsigned NOT NULL,
`AmountOfVotes` int(8) unsigned NOT NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(8) NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `votes` (
`uid` int(8) unsigned NOT NULL,
`bid` int(8) unsigned NOT NULL,
`vote` int(1) NOT NULL,
PRIMARY KEY (`bid`, `uid`)
) ;
&公司網(wǎng)站建設(shè)nbsp;
三,設(shè)計思路
數(shù)據(jù)表分為兩個部分,
1,第一個部分,表votes。其中uid和bid設(shè)為了主鍵,這樣防止網(wǎng)seo優(yōu)化趨勢一個用戶多次投票的情況;
查詢時,可以使用,
復(fù)制代碼 代碼如下:
平均分:SELECT avg(vote) FROM votes WHERE bid = $bid;
評價總數(shù): SELECT count(uid) FROM votes WHERE bid = $bid;
如果有時間排序的需求,可以再增加一個時間戳字段。
2,第二部分,冗余部分
vote_1到vote_5,僅記錄每一個級別評分的數(shù)量,有評分了則+1;
avgrate記錄平均分;
AmountOfVotes記錄總分;
其中avgrate和AmountOfVotes通過計算vote_1到vote_5得到,這樣減少了對表votes的大量查詢。
如果配合評論,那么評論中增加關(guān)聯(lián)即可,
復(fù)制代碼 代碼如下:
CREATE TABLE IF NOT EXISTS `comments` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`rating_id` INT高端網(wǎng)站建設(shè)(11) UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY ( `id` )
)
四,繼續(xù)優(yōu)化需要思考的問題
votes表中的數(shù)據(jù)量會是book中數(shù)據(jù)量的N倍,這種設(shè)計也便于votes的分表,不影響快速查詢。相關(guān)網(wǎng)站建設(shè)教程企業(yè)網(wǎng)站建設(shè)。
關(guān)鍵詞標(biāo)簽: 結(jié)構(gòu) 高效
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-23 ,文章?lián)碛?星評級數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更高效的使用主要講述高效,結(jié)構(gòu),擁有5星評級數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_6213.html
為你推薦與擁有5星評級數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更高效的使用相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12