MySQL:规范数据库设计
生活随笔
收集整理的這篇文章主要介紹了
MySQL:规范数据库设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 十、規范數據庫設計
- 10.1 為什么需要設計
- 10.1.1 糟糕的數據庫設計
- 10.1.2 良好的數據庫設計
- 10.2 軟件開發中,關于數據庫的設計
- 10.3 設計數據庫的步驟:(個人博客)
- 10.3.1 收集信息:分析需求
- 10.3.2 標識實體(把需求落地到每個字段)
- 10.3.3 標識實體之間的關系
- 10.4 三大范式
- 10.4.1 為什么需要信息規范化
- 10.4.2 第一范式
- 10.4.3 第二范式
- 10.4.4 第三范式
- 10.4.5 規范性和性能的問題
學習視頻來自于:秦疆(遇見狂神說)Bilibili地址
他的自學網站:kuangstudy
我們缺乏的不是知識,而是學而不厭的態度
十、規范數據庫設計
10.1 為什么需要設計
當數據庫比較復雜的時候,我們就需要設計了.
10.1.1 糟糕的數據庫設計
10.1.2 良好的數據庫設計
10.2 軟件開發中,關于數據庫的設計
- 分析需求:分析業務和需要處理的數據庫的需求
- 概要設計:設計關系圖E-R圖
10.3 設計數據庫的步驟:(個人博客)
10.3.1 收集信息:分析需求
- 用戶表(用戶登錄注銷,用戶的個人信息,寫博客,創建分類)
- 分類表(文章分類,誰創建的)
- 文章表(文章的信息)
- 友鏈表(友情鏈接信息)
- 評論表
- 關注表
- 自定義表(系統信息,某個關鍵的子,或者一些主體)
- 說說(發表心情)
10.3.2 標識實體(把需求落地到每個字段)
tianyublog數據庫
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 '分類標題',`create_user_id` int(10) NOT NULL COMMENT '創建用戶的id',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8blog:文章表
CREATE TABLE `blog` (`id` int(10) NOT NULL COMMENT '文章的唯一標識',`title` varchar(100) NOT NULL COMMENT '文章標題',`anthor_id` int(10) NOT NULL COMMENT '編寫文章的用戶',`category_id` int(10) NOT NULL COMMENT '文章分類',`conent` text NOT NULL COMMENT '文章內容',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`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 '網站名稱',`href` varchar(2000) NOT NULL COMMENT '網站鏈接',`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 '評論的內容',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '評論時間',`user_id_parent` int(10) NOT NULL COMMENT '回復的人id',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8user_follow:關注表
CREATE TABLE `user_follow` (`id` int(10) NOT NULL COMMENT '唯一標識',`user_id` int(10) NOT NULL COMMENT '被關注的id',`follow_id` int(10) NOT NULL COMMENT '關注人id',PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf810.3.3 標識實體之間的關系
- 寫博客:user -->blog
- 創建分類:user -->category
- 關注:user -->user_follow
- 友鏈:links
- 評論:user–>comment
10.4 三大范式
10.4.1 為什么需要信息規范化
10.4.2 第一范式
第一范式需要要求數據庫表的每一列都是不可分割的原子數據項。
10.4.3 第二范式
前提:滿足第一范式
第二范式需要確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。
10.4.4 第三范式
前提:滿足第一和第二范式
第三范式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。
10.4.5 規范性和性能的問題
阿里巴巴要求:關聯查詢的表不得超過3張表,
總結
以上是生活随笔為你收集整理的MySQL:规范数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java双层list扁平化,浅谈java
- 下一篇: 持续更新,mysql的复习强化路