佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 學(xué)會(huì)sql數(shù)據(jù)庫關(guān)系圖(Petshop)

學(xué)會(huì)sql數(shù)據(jù)庫關(guān)系圖(Petshop)

熱門標(biāo)簽:Linux服務(wù)器 地方門戶網(wǎng)站 服務(wù)外包 百度競價(jià)排名 網(wǎng)站排名優(yōu)化 呼叫中心市場需求 鐵路電話系統(tǒng) AI電銷

很久以前就知道微軟的Petshop的很經(jīng)典,昨天抽出時(shí)間去學(xué)習(xí),一開始還真的不適應(yīng),什么成員資格,還真的看不太懂,運(yùn)行petshop想從登陸學(xué)起,但是用戶名和密碼都不知道,后來發(fā)現(xiàn)有更注冊的頁面,自己注冊了一個(gè)頁面,才發(fā)現(xiàn)還得從數(shù)據(jù)庫出發(fā)?;诉@么多時(shí)間最終還是回到了數(shù)據(jù)庫,但是數(shù)據(jù)庫中一張一張的表格找不到腳本,也不是自己設(shè)計(jì)的數(shù)據(jù)庫,完全沒有一點(diǎn)頭緒,后來突然想起來sql有個(gè)數(shù)據(jù)庫關(guān)系圖,可以很快的適合數(shù)據(jù)庫程序員很快的掌握數(shù)據(jù)庫表之間的關(guān)系。于是開始了我的百度之旅,關(guān)于數(shù)據(jù)庫的關(guān)系圖的文章還真的很少,于是我開始根據(jù)petshop,然后建立數(shù)據(jù)庫關(guān)系圖,開始掌握數(shù)據(jù)庫關(guān)系圖。我點(diǎn)擊MSPetShop4Services這個(gè)數(shù)據(jù)庫,存放著用戶的信息。但是原版的是沒有數(shù)據(jù)庫關(guān)系圖。

  首先我們自己動(dòng)手來新建一張數(shù)據(jù)庫關(guān)系圖吧,找到相應(yīng)的數(shù)據(jù)庫(圖1),在第一行中有個(gè)數(shù)據(jù)庫關(guān)系圖,我們右擊選擇新建數(shù)據(jù)庫關(guān)系圖(N),如圖2:

 

      (圖1)             ?。▓D2)

  這個(gè)時(shí)候會(huì)跳出一個(gè)添加表對話框,這里我們可以選擇我們想要的表,如果想要全部選中,則這樣操作,先鼠標(biāo)點(diǎn)重第一個(gè)然后按住shift+鼠標(biāo)點(diǎn)重最后一個(gè),來完成操作。最后表格位子整理一下,然后ctrl+s保存一下,數(shù)據(jù)關(guān)系圖的名字,那么數(shù)據(jù)庫關(guān)系圖基本建立好了。接下來就是分析了。

         ?。ㄌ砑颖韺υ捒驁D)                          (選中表對話框圖)

  整個(gè)MSPetShop4Services數(shù)據(jù)庫的關(guān)系圖。整個(gè)這幅圖,是不是看著一張一張的表格了解表之間的關(guān)系舒服多了,當(dāng)然我們還是要看懂整個(gè)表的意思,首先最上面的是表名,下面的都是字段,有些字段左邊有個(gè)鑰匙,那是主鍵的意思。在表之間有個(gè)線連著就說明這兩個(gè)表之間存在主鍵和外鍵的關(guān)系,其中一半都有鑰匙的指的是主鍵,一個(gè)無窮大的符號表示的外鍵。但是不知道細(xì)心的朋友有沒有發(fā)現(xiàn)一個(gè)問題,比如說aspnet_Paths和aspnet_PersonalizationAllUsers表之間的線的兩端都是鑰匙的,我也找了很久資料沒有找到,于是自己寫代碼測試了,到底是什么意思。

通過自己的代碼了解圖中線的含義:

我自己定義是一個(gè)學(xué)生選課的關(guān)系圖:

sql腳本代碼如下:

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

CREATE TABLE Student
(
[Sid] INT NOT NULL PRIMARY KEY, --學(xué)生編號
SNAme VARCHAR(10)   NOT NULL --學(xué)生姓名
)

CREATE TABLE Course(
[Cid] INT NOT NULL PRIMARY KEY, --課程編號
CName VARCHAR(10) NOT NULL --課程名
)

CREATE TABLE SC(
[Sid] INT NOT NULL,
[Cid] INT NOT NULL,
Grade INT NOT NULL, --成績
FOREIGN KEY([SID]) REFERENCES Student2([Sid]),
FOREIGN KEY([CID]) REFERENCES Course2([Cid])
)

出來的關(guān)系圖如下:

  這個(gè)數(shù)據(jù)圖是我們知道的主鍵外鍵的關(guān)系,也是符合我們思維的。

  接著我在代碼里面改了一行代碼,圖就變調(diào)了,代碼如下:

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

CREATE TABLE Student2
(
[Sid] INT NOT NULL PRIMARY KEY, --學(xué)生編號
SNAme VARCHAR(10) NOT NULL --學(xué)生姓名
)

CREATE TABLE Course2(
[Cid] INT NOT NULL PRIMARY KEY, --課程編號
CName VARCHAR(10)      NOT NULL      --課程名
)

CREATE TABLE SC2(
[Sid] INT NOT NULL PRIMARY KEY,
[Cid] INT NOT NULL,
Grade INT NOT NULL, --成績
FOREIGN KEY([SID]) REFERENCES Student2([Sid]),
FOREIGN KEY([CID]) REFERENCES Course2([Cid])
)

  對應(yīng)的關(guān)系圖如下:

  我相信你們看到了吧,兩個(gè)鑰匙的線段。好了那我們應(yīng)該了解了吧,我們可以得出這樣的結(jié)論,如果一個(gè)表中是主鍵,而另一個(gè)表中卻是普通的字段,那顯示的效果是一個(gè)鑰匙一個(gè)無窮大,鑰匙指向主鍵,無窮大指向外鍵,但是當(dāng)外鍵在另一張表中也作為主鍵,那此時(shí)無窮大也變?yōu)榱髓€匙。此時(shí)我們不能看線了。那要怎么分析主鍵和外鍵呢?別急往下看。這里介紹兩個(gè)方法,第一個(gè)比較簡答,我們把鼠標(biāo)放到這個(gè)線上面,他會(huì)跳出一行提示,在前面的表名是主鍵,后面的是外鍵,最后的是關(guān)系的名字(這個(gè)是我自己看表得出的結(jié)論),還有一個(gè)方法,但是我們事先也要用這個(gè)方法,知道這個(gè)關(guān)系的名字,然后點(diǎn)擊兩個(gè)表中隨便的哪一張表,右擊選擇關(guān)系,找到相應(yīng)的關(guān)系名,然后選擇右邊的表和列規(guī)范,里面就寫明了主外鍵的關(guān)系了。好了就寫到這里了。

  總結(jié):
  遇到難的我們先不要怕,從最基本的做起,也可以自己建立測試數(shù)據(jù)來驗(yàn)證遇到的新的知識。

您可能感興趣的文章:
  • 《解剖PetShop》之一:PetShop的系統(tǒng)架構(gòu)設(shè)計(jì)
  • 《解剖PetShop》之二:PetShop數(shù)據(jù)訪問層數(shù)之據(jù)庫訪問設(shè)計(jì)
  • 《解剖PetShop》之三:PetShop數(shù)據(jù)訪問層之消息處理
  • 《解剖PetShop》之四:PetShop之ASP.NET緩存
  • 《解剖PetShop》之五:PetShop之業(yè)務(wù)邏輯層設(shè)計(jì)
  • 《解剖PetShop》之六:PetShop之表示層設(shè)計(jì)

標(biāo)簽:崇左 黃山 湖南 湘潭 銅川 衡水 仙桃 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《學(xué)會(huì)sql數(shù)據(jù)庫關(guān)系圖(Petshop)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    申扎县| 惠东县| 鄂托克旗| 丽江市| 大埔区| 寻甸| 万山特区| 格尔木市| 灵石县| 鲁甸县| 大悟县| 交城县| 肃宁县| 泸州市| 商河县| 澄城县| 双城市| 德阳市| 应城市| 琼结县| 米林县| 手游| 饶河县| 鲁山县| 内江市| 蓬溪县| 潮州市| 卢氏县| 南城县| 靖边县| 泸水县| 澄江县| 平远县| 五寨县| 收藏| 和平县| 龙门县| 安溪县| 岳池县| 吉木乃县| 鸡西市|