MySQL:规范数据库设计
生活随笔
收集整理的這篇文章主要介紹了
MySQL:规范数据库设计
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 十、規(guī)范數(shù)據(jù)庫設(shè)計
- 10.1 為什么需要設(shè)計
- 10.1.1 糟糕的數(shù)據(jù)庫設(shè)計
- 10.1.2 良好的數(shù)據(jù)庫設(shè)計
- 10.2 軟件開發(fā)中,關(guān)于數(shù)據(jù)庫的設(shè)計
- 10.3 設(shè)計數(shù)據(jù)庫的步驟:(個人博客)
- 10.3.1 收集信息:分析需求
- 10.3.2 標(biāo)識實(shí)體(把需求落地到每個字段)
- 10.3.3 標(biāo)識實(shí)體之間的關(guān)系
- 10.4 三大范式
- 10.4.1 為什么需要信息規(guī)范化
- 10.4.2 第一范式
- 10.4.3 第二范式
- 10.4.4 第三范式
- 10.4.5 規(guī)范性和性能的問題
學(xué)習(xí)視頻來自于:秦疆(遇見狂神說)Bilibili地址
他的自學(xué)網(wǎng)站:kuangstudy
我們?nèi)狈Φ牟皇侵R,而是學(xué)而不厭的態(tài)度
十、規(guī)范數(shù)據(jù)庫設(shè)計
10.1 為什么需要設(shè)計
當(dāng)數(shù)據(jù)庫比較復(fù)雜的時候,我們就需要設(shè)計了.
10.1.1 糟糕的數(shù)據(jù)庫設(shè)計
10.1.2 良好的數(shù)據(jù)庫設(shè)計
10.2 軟件開發(fā)中,關(guān)于數(shù)據(jù)庫的設(shè)計
- 分析需求:分析業(yè)務(wù)和需要處理的數(shù)據(jù)庫的需求
- 概要設(shè)計:設(shè)計關(guān)系圖E-R圖
10.3 設(shè)計數(shù)據(jù)庫的步驟:(個人博客)
10.3.1 收集信息:分析需求
- 用戶表(用戶登錄注銷,用戶的個人信息,寫博客,創(chuàng)建分類)
- 分類表(文章分類,誰創(chuàng)建的)
- 文章表(文章的信息)
- 友鏈表(友情鏈接信息)
- 評論表
- 關(guān)注表
- 自定義表(系統(tǒng)信息,某個關(guān)鍵的子,或者一些主體)
- 說說(發(fā)表心情)
10.3.2 標(biāo)識實(shí)體(把需求落地到每個字段)
tianyublog數(shù)據(jù)庫
CREATE DATABASE IF NOT EXISTS `tianyublog` CHARACTER SET utf8 COLLATE utf8_general_ciuser:用戶表
CREATE TABLE `user` (`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '用戶的唯一id',`username` varchar(60) NOT NULL COMMENT '用戶名',`password` varchar(60) NOT NULL COMMENT '用戶密碼',`sex` varchar(2) NOT NULL COMMENT '性別',`age` int(3) DEFAULT NULL COMMENT '年齡',`sign` varchar(200) DEFAULT NULL COMMENT '簽名',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8category:分類表
CREATE TABLE `category` (`id` int(10) NOT NULL COMMENT '分類id',`category_name` varchar(30) NOT NULL COMMENT '分類標(biāo)題',`create_user_id` int(10) NOT NULL COMMENT '創(chuàng)建用戶的id',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8blog:文章表
CREATE TABLE `blog` (`id` int(10) NOT NULL COMMENT '文章的唯一標(biāo)識',`title` varchar(100) NOT NULL COMMENT '文章標(biāo)題',`anthor_id` int(10) NOT NULL COMMENT '編寫文章的用戶',`category_id` int(10) NOT NULL COMMENT '文章分類',`conent` text NOT NULL COMMENT '文章內(nèi)容',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',`love` int(10) DEFAULT NULL COMMENT '喜歡',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8links:友鏈表
CREATE TABLE `links` (`id` int(10) NOT NULL COMMENT '友鏈id',`links` varchar(50) NOT NULL COMMENT '網(wǎng)站名稱',`href` varchar(2000) NOT NULL COMMENT '網(wǎng)站鏈接',`sort` int(10) NOT NULL COMMENT '排序',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8comment:評論表
CREATE TABLE `comment` (`id` int(10) NOT NULL COMMENT '評論id',`blog_id` int(10) NOT NULL COMMENT '所屬的文章',`user_id` int(10) NOT NULL COMMENT '評論人',`content` varchar(2000) NOT NULL COMMENT '評論的內(nèi)容',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '評論時間',`user_id_parent` int(10) NOT NULL COMMENT '回復(fù)的人id',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8user_follow:關(guān)注表
CREATE TABLE `user_follow` (`id` int(10) NOT NULL COMMENT '唯一標(biāo)識',`user_id` int(10) NOT NULL COMMENT '被關(guān)注的id',`follow_id` int(10) NOT NULL COMMENT '關(guān)注人id',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf810.3.3 標(biāo)識實(shí)體之間的關(guān)系
- 寫博客:user -->blog
- 創(chuàng)建分類:user -->category
- 關(guān)注:user -->user_follow
- 友鏈:links
- 評論:user–>comment
10.4 三大范式
10.4.1 為什么需要信息規(guī)范化
10.4.2 第一范式
第一范式需要要求數(shù)據(jù)庫表的每一列都是不可分割的原子數(shù)據(jù)項(xiàng)。
10.4.3 第二范式
前提:滿足第一范式
第二范式需要確保數(shù)據(jù)庫表中的每一列都和主鍵相關(guān),而不能只與主鍵的某一部分相關(guān)(主要針對聯(lián)合主鍵而言)。
10.4.4 第三范式
前提:滿足第一和第二范式
第三范式需要確保數(shù)據(jù)表中的每一列數(shù)據(jù)都和主鍵直接相關(guān),而不能間接相關(guān)。
10.4.5 規(guī)范性和性能的問題
阿里巴巴要求:關(guān)聯(lián)查詢的表不得超過3張表,
總結(jié)
以上是生活随笔為你收集整理的MySQL:规范数据库设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java双层list扁平化,浅谈java
- 下一篇: 持续更新,mysql的复习强化路