mysql:数据库设计
目錄
1.軟件的研發(fā)步驟
2.數(shù)據(jù)庫設(shè)計(jì)概念
3.數(shù)據(jù)庫設(shè)計(jì)的步驟
4.E-R圖例子:
5.表關(guān)系:
1.一對(duì)一
2.一對(duì)多(多對(duì)一)
3.多對(duì)多
4.內(nèi)連接與外連接的區(qū)別
6.數(shù)據(jù)庫設(shè)計(jì)案例
1.軟件的研發(fā)步驟
需求分析-設(shè)計(jì)-編碼-測(cè)試-安裝部署2.數(shù)據(jù)庫設(shè)計(jì)概念
????????1).數(shù)據(jù)庫設(shè)計(jì)就是根據(jù)業(yè)務(wù)系統(tǒng)的具體需求,結(jié)合我們所選用的DBMS,為這個(gè)業(yè)務(wù)系統(tǒng)構(gòu)造出最優(yōu)的數(shù)據(jù)存儲(chǔ)模型。
????????2).建立數(shù)據(jù)庫中的表結(jié)構(gòu)以及表與表之間的關(guān)聯(lián)關(guān)系的過程。
????????3).有哪些表?表里有哪些字段?表和表之間有什么關(guān)系?
3.數(shù)據(jù)庫設(shè)計(jì)的步驟
????????1).需求分析(數(shù)據(jù)是什么?數(shù)據(jù)具有哪些屬性?數(shù)據(jù)與屬性的特點(diǎn)是什么)
????????2).邏輯分析(通過ER圖對(duì)數(shù)據(jù)庫進(jìn)行邏輯建模,不需要考慮我們所選用的數(shù)據(jù)庫管理系統(tǒng))
????????3).物理設(shè)計(jì)(根據(jù)數(shù)據(jù)庫自身的特點(diǎn)把邏輯設(shè)計(jì)轉(zhuǎn)換為物理設(shè)計(jì))
????????4).維護(hù)設(shè)計(jì)(1.對(duì)新的需求進(jìn)行建表;2表優(yōu)化)
4.E-R圖例子:
5.表關(guān)系:
1.一對(duì)一
????????多用于表拆分,將一個(gè)尸體中經(jīng)常使用的字段放一張表,不經(jīng)常使用的字段方另一張表,用于提升查詢性能
????????實(shí)現(xiàn)方式:在任意一方加入外鍵,關(guān)聯(lián)另一方主鍵,并設(shè)置外鍵為唯一unique
? -- 用戶詳情表 create table tb_user_desc(id int PRIMARY KEY auto_increment,city varchar(5),edu varchar(3),income int,status varchar(5),department varchar(10) -- 部門名 ); -- 用戶表 create table tb_user(id int PRIMARY KEY auto_increment,photo blob,nickname varchar(10),age int,gender varchar(5),desc_id int,constraint fk_user_desc FOREIGN KEY(desc_id) REFERENCES tb_user_desc(id) ); insert into tb_user_desc(id,city,edu,income,status,department) values (1,'廣州','碩士',3000,'單身','前端'), (2,'湖北','本科',30000,'離異','后端'), (3,'河南','本科',40000,'單身','大數(shù)據(jù)'); ? insert into tb_user(id,photo,nickname,age,gender,desc_id) ?values (1,'a.jpg','一場(chǎng)夢(mèng)',23,'女',1), (2,'b.jpg','風(fēng)清揚(yáng)',35,'男',2), (3,'c.jpg','趙云',41,'男',3);?
2.一對(duì)多(多對(duì)一)
在多的一方建立外鍵關(guān)聯(lián)一的一方
3.多對(duì)多
????????實(shí)現(xiàn)方式:建立第三章中間表,中間表至少包含兩個(gè)外鍵,分別關(guān)聯(lián)兩方主鍵
-- 訂單表 create table tb_order(id int PRIMARY KEY auto_increment,payment double(10,2),payment_type TINYINT,status TINYINT ); -- 商品表 create table tb_goods(id int PRIMARY KEY auto_increment,title varchar(100),price double(10,2) ); -- 訂單商品中間表 create table tb_order_goods(id int PRIMARY KEY auto_increment,order_id int,goods_id int,count int ); ? -- 添加外鍵 alter table tb_order_goods add CONSTRAINT fk_order_id FOREIGN KEY(order_id) REFERENCES tb_order(id); alter table tb_order_goods add CONSTRAINT fk_goods_id FOREIGN KEY(goods_id) REFERENCES tb_goods(id); ?4.內(nèi)連接與外連接的區(qū)別
6.數(shù)據(jù)庫設(shè)計(jì)案例
drop table music_user; drop table music; drop table song; drop table user; drop table review; -- 專輯 create table music(title varchar(32),-- 專輯名alias varchar(32),-- 專輯別名image varchar(64),-- 封面圖片style varchar(8),-- 流派(如經(jīng)典、流行、民謠、電子)type varchar(4),-- 類型(專輯、單曲)medium varchar(4),-- 介質(zhì)(CD、黑膠、數(shù)字)publish_time date,-- 發(fā)行時(shí)間publisher varchar(16),-- 出版者number tinyint,-- 唱片數(shù)barcode bigint,-- 條形碼summary varchar(1024),-- 簡(jiǎn)介 artist varchar(16),-- 藝術(shù)家id int PRIMARY KEY,-- 編號(hào)(唯一)song_id int ); -- 曲目 create table song(name varchar(32),-- 歌曲名serial_number tinyint,-- 歌曲序號(hào)id int PRIMARY KEY-- 編號(hào)(唯一) ); -- 短評(píng) create table review(content varchar(256),-- 評(píng)論內(nèi)容rating tinyint, -- 評(píng)分(1-5)review_time datetime, -- 評(píng)論時(shí)間music_id int,user_id int ); -- 用戶 create table user(username varchar(16), -- 用戶名(唯一)image varchar(64), -- 用戶頭像圖片地址signature varchar(64),-- 個(gè)性簽名nickname varchar(16),-- 用戶昵稱id int PRIMARY KEY-- 用戶編號(hào)(主鍵) ); -- 專輯,曲目 多對(duì)一 alter table music add constraint fk_music_song FOREIGN KEY(song_id) REFERENCES song(id); -- 專輯,用戶 多對(duì)多 create table music_user(music_id int,user_id int ); alter table music_user add constraint fk_music_id FOREIGN KEY(music_id) REFERENCES music(id); alter table music_user add constraint fk_user_id FOREIGN KEY(user_id) REFERENCES user(id); -- 專輯,短評(píng) 一對(duì)多 alter table review add constraint fk_review_music FOREIGN KEY(music_id) REFERENCES music(id); -- 用戶,短評(píng) 一對(duì)多 alter table review add constraint fk_review_user FOREIGN KEY(user_id) REFERENCES user(id); ?總結(jié)
以上是生活随笔為你收集整理的mysql:数据库设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: re:正则表达式,字符串处理的杀手锏
- 下一篇: linux cmake编译源码,linu