最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

擁有5星評(píng)級(jí)數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更高效的使用?

 更新時(shí)間:2013年04月28日 16:44:24   作者:  
本篇文章介紹了,擁有5星評(píng)級(jí)數(shù)據(jù)庫表結(jié)構(gòu) 如何才能更高效的使用的方法。需要的朋友參考下
產(chǎn)品數(shù)據(jù)庫設(shè)計(jì)時(shí),經(jīng)常遇到5星評(píng)價(jià)的情況,數(shù)據(jù)表如何設(shè)計(jì)才能即保證查詢效率,又能減少數(shù)據(jù)冗余呢?

初步設(shè)計(jì)思路如下,請(qǐng)大家指正。

一,最終效果,

二,表結(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`)
) ;


三,設(shè)計(jì)思路

數(shù)據(jù)表分為兩個(gè)部分,

1,第一個(gè)部分,表votes。其中uid和bid設(shè)為了主鍵,這樣防止一個(gè)用戶多次投票的情況;

查詢時(shí),可以使用,

復(fù)制代碼 代碼如下:

平均分:SELECT avg(vote) FROM votes WHERE bid = $bid;

評(píng)價(jià)總數(shù): SELECT count(uid) FROM votes WHERE bid = $bid;


如果有時(shí)間排序的需求,可以再增加一個(gè)時(shí)間戳字段。

2,第二部分,冗余部分

vote_1到vote_5,僅記錄每一個(gè)級(jí)別評(píng)分的數(shù)量,有評(píng)分了則+1;

avgrate記錄平均分;
AmountOfVotes記錄總分;

其中avgrate和AmountOfVotes通過計(jì)算vote_1到vote_5得到,這樣減少了對(duì)表votes的大量查詢。

如果配合評(píng)論,那么評(píng)論中增加關(guān)聯(lián)即可,

復(fù)制代碼 代碼如下:


CREATE TABLE IF NOT EXISTS `comments` (
               `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
               `rating_id` INT(11)  UNSIGNED NOT NULL DEFAULT 0,
               PRIMARY KEY ( `id` )
)


四,繼續(xù)優(yōu)化需要思考的問題

votes表中的數(shù)據(jù)量會(huì)是book中數(shù)據(jù)量的N倍,這種設(shè)計(jì)也便于votes的分表,不影響快速查詢。

相關(guān)文章

  • Oracle 和 mysql的9點(diǎn)區(qū)別

    Oracle 和 mysql的9點(diǎn)區(qū)別

    這篇文章主要介紹了Oracle 和 mysql的9點(diǎn)區(qū)別,需要的朋友可以參考下
    2014-04-04
  • MySQL服務(wù)器的啟動(dòng)和關(guān)閉

    MySQL服務(wù)器的啟動(dòng)和關(guān)閉

    作為MySQL管理員,一個(gè)普通的目標(biāo)就是確保服務(wù)器盡可能地處于運(yùn)行狀態(tài),使得客戶機(jī)能夠隨時(shí)訪問它。但是,有時(shí)最好關(guān)閉服務(wù)器(例如,如果正在進(jìn)行數(shù)據(jù)庫的重定位,不希望服務(wù)器在該數(shù)據(jù)庫中更新表)。保持服務(wù)器運(yùn)行和偶爾關(guān)閉它的需求關(guān)系不是本書所解 決的。但是我們至少可以討論如何使服務(wù)器啟動(dòng)和停止,以便您具備進(jìn)行這兩個(gè)操作的能力。
    2008-04-04
  • Mysql架構(gòu)圖解讀

    Mysql架構(gòu)圖解讀

    這篇文章主要介紹了Mysql架構(gòu)圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Sysbench多線程性能測試工具

    Sysbench多線程性能測試工具

    sysbench是一個(gè)多線程性能測試工具,可以進(jìn)行CPU/內(nèi)存/IO/數(shù)據(jù)庫等性能測試,不過我絕大多數(shù)的時(shí)候都是用它來對(duì)數(shù)據(jù)庫(MySQL)進(jìn)行oltp測試
    2012-11-11
  • 解決mysql時(shí)區(qū)問題導(dǎo)致錯(cuò)誤Incorrect datetime value: '1970-01-01 00:00:01'

    解決mysql時(shí)區(qū)問題導(dǎo)致錯(cuò)誤Incorrect datetime value: &apo

    這篇文章主要介紹了解決mysql時(shí)區(qū)問題導(dǎo)致錯(cuò)誤Incorrect datetime value: '1970-01-01 00:00:01',具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Mysql數(shù)據(jù)庫中子查詢的使用

    Mysql數(shù)據(jù)庫中子查詢的使用

    本文給大家分享mysql數(shù)據(jù)庫中子查詢的使用,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-10-10
  • MySQL 8.0新特性 — 管理端口的使用簡介

    MySQL 8.0新特性 — 管理端口的使用簡介

    這篇文章主要介紹了MySQL 8.0新特性 — 管理端口的使用簡介,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • mysql LOAD語句批量錄入數(shù)據(jù)

    mysql LOAD語句批量錄入數(shù)據(jù)

    本章的前面討論如何使用SQL向一個(gè)表中插入數(shù)據(jù)。但是,如果你需要向一個(gè)表中添加許多條記錄,使用SQL語句輸入數(shù)據(jù)是很不方便的。
    2010-03-03
  • mysql的sql語句特殊處理語句總結(jié)(必看)

    mysql的sql語句特殊處理語句總結(jié)(必看)

    下面小編就為大家?guī)硪黄猰ysql的sql語句特殊處理語句總結(jié)(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • 解析MySQL binlog

    解析MySQL binlog

    我們都知道,binlog可以說是MySQL中比較重要的日志了,在日常學(xué)習(xí)及運(yùn)維過程中,也經(jīng)常會(huì)遇到。不清楚你對(duì)binlog了解多少呢?本篇文章將從binlog作用、binlog相關(guān)參數(shù)、解析binlog內(nèi)容三個(gè)方面帶你了解binlog
    2021-06-06

最新評(píng)論

文登市| 白山市| 元阳县| 焉耆| 石棉县| 比如县| 汝南县| 石棉县| 北海市| 开鲁县| 兴山县| 无极县| 扶余县| 盐亭县| 平安县| 苍南县| 淳化县| 阿尔山市| 衡水市| 稷山县| 濉溪县| 大邑县| 黑水县| 疏勒县| 酉阳| 贵德县| 建水县| 罗甸县| 武穴市| 锡林郭勒盟| 南充市| 南平市| 湟中县| 江陵县| 泗阳县| 太原市| 金塔县| 德清县| 德江县| 天台县| 定陶县|