php spry文本域_《PHP和MySQL Web 开发》第8章 设计Web数据库
封面人物
劉承羽
前言
這是我學(xué)習(xí)《PHP和MySQL Web 開(kāi)發(fā)》的讀書(shū)筆記,一些重要的知識(shí)點(diǎn)我會(huì)記錄下來(lái),當(dāng)然只會(huì)寫(xiě)我覺(jué)得重要的。
本章主要是介紹了:
- 關(guān)系數(shù)據(jù)庫(kù)的概念和術(shù)語(yǔ)
- Web數(shù)據(jù)庫(kù)的設(shè)計(jì)與架構(gòu)
基礎(chǔ)知識(shí)還是要有的,方便了解一些專(zhuān)有名詞,包括數(shù)據(jù)庫(kù)是干啥的,后端說(shuō)的時(shí)候你聽(tīng)了至少不懵逼。開(kāi)始吧!
8.1關(guān)系數(shù)據(jù)庫(kù)的概念
下方帶灰色底的文字的都是摘錄的書(shū)中原文!可放心閱讀,以后不再說(shuō)明。
當(dāng)前使用關(guān)系數(shù)據(jù)庫(kù)的時(shí)候,并不需要了解關(guān)系理論(這是一件好事),但還是需要理解一些關(guān)于數(shù)據(jù)庫(kù)的基本概念。8.1.1表格
一個(gè)表格就是一個(gè)數(shù)據(jù)的表格,就和Excel表格一樣,儲(chǔ)存著數(shù)據(jù),就是下面這樣,里面內(nèi)容不用管,就是讓你看下形式。(一般就叫表)
books +---------------+-------------------+-------------------------------------+-------+ | id | author | title | price | +---------------+-------------------+-------------------------------------+-------+ | 0-672-31697-8 | Michael Morgan | Java 開(kāi)發(fā) | 38.49 | | 0-672-31745-1 | Thomas Down | Linux 開(kāi)發(fā) | 27.49 | | 0-672-31509-2 | Pruitt,et al. | 時(shí)間管理 | 27.49 | | 0-672-31769-9 | Thomas Schenk | 開(kāi)放系統(tǒng)管理 | 54.99 | | 0-672-31000-1 | 李重樓 | web開(kāi)發(fā)筆記 | 99.99 | | 0-672-31000-4 | Nicholas C.Zakas | JavaScript高級(jí)程序設(shè)計(jì)(第3版) | 99.99 | | 0-672-31000-5 | 李重樓 | web插入數(shù)據(jù)庫(kù) | 53.20 | | 0-672-31000-6 | 李重樓 | 網(wǎng)站建設(shè)與拆毀 | 44.36 | +---------------+-------------------+-------------------------------------+-------+表名叫books,有id,author,title,price 四個(gè)數(shù)據(jù)列。每個(gè)列里對(duì)應(yīng)的是相同的數(shù)據(jù)類(lèi)型,每一行對(duì)應(yīng)著是一條由id,author,title,price對(duì)應(yīng)的值構(gòu)成的數(shù)據(jù)。
如:0-672-31000-1,李重樓, web開(kāi)發(fā)筆記, 99.99 。這個(gè)就是一條數(shù)據(jù)好理解吧?
注意:豎著的叫列,橫著的叫行。
8.1.2列
表中的每一列都有唯一的名稱(chēng),包含不同的數(shù)據(jù)。此外每一列都有一個(gè)相關(guān)的數(shù)據(jù)類(lèi)型。(注意:豎著的叫列,橫著的叫行。)如上方表格所示,author 列的數(shù)據(jù)類(lèi)型就是字符串類(lèi)型。這個(gè)也很好理解吧?具體都有多少數(shù)據(jù)類(lèi)型,在后面有介紹,別急,慢慢看。
重點(diǎn)來(lái)了!!!
有時(shí)候,列也叫做 域 或者 屬性!為啥這是重點(diǎn)?
因?yàn)橐院箝_(kāi)發(fā)的時(shí)候怎么叫的都有,人家說(shuō) 列 你腦子里知道是啥,豎著的那豎行叫列,人家說(shuō) 域 或者說(shuō) 屬性 你就不知道是啥了那可不行,招人笑話(huà)!
也有叫字段的,但是這個(gè)一般指 列名字段,比如上面寫(xiě)的:id,author,title,price 這些。
8.1.3行
表中的每一行代表一個(gè)客戶(hù)。每一行具有相同的格式,因而也具有相同的屬性。行也稱(chēng)為記錄。我上面的表格示例表示每一行代表一本書(shū)。
具有相同格式是說(shuō):第二行的格式和第三行的格式一定相同,好理解吧?其實(shí)所有行格式都相同。
重點(diǎn)來(lái)了!!!
行也稱(chēng)為記錄。為啥這是重點(diǎn)?道理剛才說(shuō)過(guò)了。不說(shuō)了。
8.1.4值
每一行由對(duì)應(yīng)于每一列的單個(gè)值組成,每個(gè)值必須與改了定義的數(shù)據(jù)類(lèi)型相同。這個(gè)如果不理解的話(huà),你私信我,我單獨(dú)給你解釋。
8.1.5鍵
書(shū)里的介紹你先看。
看完了嗎?沒(méi)看完不要看下面的筆記。看不下去也要看,讀,一句話(huà)一句話(huà)的讀。讀完整個(gè)8.1.5。
書(shū)讀百遍其義自見(jiàn)是有道理的,我也笨,你以為我比你聰明?我有老師教?不!俺沒(méi)有,俺讀了三遍,認(rèn)真的讀了三遍,我就明白了。
有時(shí)候你不是學(xué)不會(huì),是不認(rèn)真學(xué),不認(rèn)真理解,聽(tīng)我的,感覺(jué)一遍沒(méi)明白,就再讀一遍。仔細(xì)的讀。讀出聲的那種。
看完繼續(xù)!
書(shū)里整段介紹的提煉的就是一句話(huà):鍵,每一條數(shù)據(jù)所對(duì)應(yīng)的唯一的標(biāo)識(shí)。
書(shū)中舉例說(shuō)明的是人名,人名不唯一啊!
你回想一下,你,有個(gè)朋友說(shuō):我認(rèn)識(shí)一個(gè)人叫小明。你說(shuō):哎呀,巧了,我也認(rèn)識(shí)一個(gè)叫小明的。
結(jié)果一對(duì),他說(shuō)的是個(gè)女的,你說(shuō)的是個(gè)男的,或者你說(shuō)的是東北的小明。他說(shuō)的是臺(tái)灣的小明。根本不是一個(gè)人。
這就書(shū)中舉名字例子要表達(dá)的,所以我們需要一系列信息來(lái)區(qū)分開(kāi)兩個(gè)小明或者確定其中一個(gè)你認(rèn)識(shí)的小明,比如:性別,戶(hù)籍所在地,出生年月,外加其他的體態(tài)外表特征等。
現(xiàn)實(shí)生活中:你的身份證號(hào),就是這些信息綜合抽象而成的,就是在這個(gè)“社會(huì)數(shù)據(jù)庫(kù)”中,人口表中的 鍵,確認(rèn)你身份的唯一ID。(ID 是identity的縮寫(xiě),意思為身份)
這么一想,是不是感覺(jué)你家的戶(hù)口本其實(shí)就很像表?戶(hù)口本來(lái)有叔叔,阿姨和你,然后戶(hù)口表中唯一確定你家三口誰(shuí)是誰(shuí)的最快最便捷的身份標(biāo)識(shí)是不是身份證號(hào)?
來(lái),再記一遍:鍵,每一條數(shù)據(jù)所對(duì)應(yīng)的唯一的標(biāo)識(shí)。
表中的標(biāo)識(shí)列稱(chēng)為 鍵 或 主鍵。這是書(shū)中說(shuō)的,書(shū)里說(shuō)的對(duì),標(biāo)識(shí)列 稱(chēng)為 鍵 或 主鍵,和你說(shuō)的有沖突啊?!
不沖突的。
說(shuō)表的主鍵是什么的時(shí)候?
請(qǐng)看上方的books表,上方books表里的id列就是表的主鍵。
為啥id就是主鍵別的不可以嗎?
沒(méi)有為啥!!因?yàn)槲以趯?xiě)這個(gè)表的時(shí)候,就遵循的id字段這一列,就是唯一的標(biāo)識(shí)數(shù)據(jù),用來(lái)做主鍵的。
那你說(shuō)的,鍵,每一條數(shù)據(jù)所對(duì)應(yīng)的唯一的標(biāo)識(shí)。是什么意思?
舉例:你找作者叫李重樓的,書(shū)名為《網(wǎng)站建設(shè)與拆毀 》,44.36一本的書(shū)。
這個(gè)是不是一條數(shù)據(jù)?
他的id是 0-672-31000-6 ,這個(gè) 0-672-31000-6 就是這一條數(shù)據(jù)所對(duì)應(yīng)的唯一的標(biāo)識(shí)。
再跟我讀一遍:鍵,每一條數(shù)據(jù)所對(duì)應(yīng)的唯一的標(biāo)識(shí)。嗯呢,乖~
通常,數(shù)據(jù)庫(kù)由多個(gè)表組成,可以使用鍵作為表格之間的引用。這種關(guān)系用關(guān)系數(shù)據(jù)庫(kù)術(shù)語(yǔ)來(lái)描述的時(shí)候就是外鍵。
這個(gè)出現(xiàn)在別的表中的鍵,叫外鍵。
這個(gè)看書(shū)吧,我覺(jué)得很簡(jiǎn)單,我實(shí)在懶得畫(huà)圖了。
8.1.6模式
數(shù)據(jù)庫(kù)整套表格的完整設(shè)計(jì)成為數(shù)據(jù)庫(kù)的模式。以書(shū)中列子來(lái)說(shuō):Customers(CustomerID,Name,Address,City),這個(gè)就是文本格式表示,有的人會(huì)手畫(huà)表示,怎么都可以,你整明白了就行。我就對(duì)這個(gè)文本格式的模式進(jìn)行一下解釋吧。
- Customers:表的名稱(chēng),你家的戶(hù)口本,戶(hù)口本三個(gè)字就是表名。
- CustomerID,Name,Address,City 都是表格的列。
- CustomerID 帶下劃線(xiàn)的是的是表示該列是主鍵。
- CustomerID 斜體的表示該列是所在關(guān)系表的外鍵。
- CustomerID 又是斜體還有下劃線(xiàn)的表示的是:該列是標(biāo)識(shí)列 叫 主鍵,同時(shí)該列是所在關(guān)系表的外鍵。
8.1.7關(guān)系
這里還是比較復(fù)雜難理解,至少我是這么覺(jué)得。
所以,如果你覺(jué)得很簡(jiǎn)單,恭喜你,你是個(gè)天才啊~,但是你也覺(jué)得難,那么表示確實(shí)正常,不要?dú)怵H,老規(guī)矩,先讀三遍。
讀完了?
我開(kāi)始照抄書(shū)了啊~
關(guān)系數(shù)據(jù)庫(kù)中有3種基本的數(shù)據(jù)關(guān)系類(lèi)型。根據(jù)關(guān)系雙方所含對(duì)象的多少,可以將這些關(guān)系分為 一對(duì)一,一對(duì)多,多對(duì)多3種關(guān)系。定義下了,有三種關(guān)系。那么開(kāi)始理解。
一對(duì)一關(guān)系表示關(guān)系雙方只有一個(gè)對(duì)象相互對(duì)應(yīng)。一對(duì)一是好理解的,定義都說(shuō)了,你只能有一個(gè)對(duì)象,你對(duì)象也只能有一個(gè)男/女朋友,而這個(gè)男/女朋友得是你。
有一個(gè)人好幾個(gè)對(duì)象的啊?那就是下一步說(shuō)的了:
在一對(duì)多的關(guān)系中,一個(gè)表中的一行與另一個(gè)表中的多行具有相互關(guān)聯(lián)的關(guān)系。這個(gè)叫一對(duì)多,但是這個(gè)不舉男女戀愛(ài)的例子了,因?yàn)樘?#xff0c;咱講父與子的關(guān)系。
一個(gè)人可以生多個(gè)孩子,這些孩子都管這個(gè)人叫爹,這個(gè)爹就是“一行”,這些孩子就是“多行”,他們的關(guān)系是父子關(guān)系,如果換成顧客買(mǎi)東西那就是一個(gè)顧客可以購(gòu)買(mǎi)n多件商品他們是購(gòu)買(mǎi)關(guān)系(姑且這么叫吧)。
在多對(duì)多的關(guān)系中,表中的多行與另一個(gè)表中的多行具有相互關(guān)聯(lián)的關(guān)系。這個(gè)叫多對(duì)多,其實(shí)我一開(kāi)始看的時(shí)候在想,什么情況下會(huì)出現(xiàn)多對(duì)多呢?
現(xiàn)實(shí)生活中有什么實(shí)際例子能幫我理解消化一下嗎?
我就搜啊搜,看看有啥實(shí)際應(yīng)用的列子嗎?然后我搜到一個(gè)很貼近每個(gè)人生活,很好的例子:數(shù)據(jù)表對(duì)應(yīng)關(guān)系(一對(duì)一、一對(duì)多、多對(duì)多)。
作者是:Abeam,他個(gè)人描述深深的刺激了我,描述是:編程大忌,懶~~~
因?yàn)槲揖蛻?...
扯遠(yuǎn)了。
多對(duì)多,在數(shù)據(jù)庫(kù)中也比較常見(jiàn),可以理解為是一對(duì)多和多對(duì)一的組合。要實(shí)現(xiàn)多對(duì)多,一般都需要有一張中間表(也叫關(guān)聯(lián)表),將兩張表進(jìn)行關(guān)聯(lián),形成多對(duì)多的形式。例如: 老師表、班級(jí)表、科目表,中間表為:課程表。例子很詳細(xì)了,A老師教一二班語(yǔ)文,B老師教一二班數(shù)學(xué)。你思考一下,教師是個(gè)表,表里有AB兩位老師,班級(jí)是個(gè)表,有一二兩班。
班級(jí)表中一班對(duì)應(yīng)兩位老師,A和B。教師表中A對(duì)應(yīng)著兩個(gè)班,一班和二班。這個(gè)就是多對(duì)多,不知道你理解沒(méi)有。
暫時(shí)沒(méi)有理解也沒(méi)關(guān)系,在后續(xù)有實(shí)際的應(yīng)用,會(huì)幫助你理解的。
我不得不獻(xiàn)上我的畫(huà)作了
自己看圖理解吧。
8.2 設(shè)計(jì)Web數(shù)據(jù)庫(kù)
本章主要是介紹了:
- 關(guān)系數(shù)據(jù)庫(kù)的概念和術(shù)語(yǔ)
- Web數(shù)據(jù)庫(kù)的設(shè)計(jì)與架構(gòu)
基礎(chǔ)知識(shí)還是要有的,方便了解一些專(zhuān)有名詞,包括數(shù)據(jù)庫(kù)是干啥的,后端說(shuō)的時(shí)候你聽(tīng)了至少不懵逼。開(kāi)始吧!
書(shū)中是以 Book-O-Rama(拉瑪?shù)臅?shū)店?)的內(nèi)容為例的,我也盡量吧。
customers +------------+-----------------+--------------------+--------------------+ | customerid | name | address | city | +------------+-----------------+--------------------+--------------------+ | 1 | 劉能 | 牡丹江大街 | 牡丹江 | | 2 | 李重樓 | 北京中弘像素 | 北京 | | 3 | 謝廣坤 | 保定市 | 保定 | | 4 | Alan Wong | 1/47 Haines Avenue | 保定 | | 5 | Michelle Arthur | 357 North Road | Yarraville | | 6 | Melissa Jones | 紅莊 c3-1 | Nar Nar Goon North | +------------+-----------------+--------------------+--------------------+ order +---------+------------+--------+------------+ | orderid | customerid | amount | date | +---------+------------+--------+------------+ | 1 | 3 | 69.98 | 2018-06-27 | | 2 | 1 | 49.99 | 2018-06-26 | | 3 | 2 | 74.98 | 2018-06-25 | | 4 | 3 | 24.99 | 2018-06-24 | +---------+------------+--------+------------+ books +---------------+-------------------+-------------------------------------+-------+ | isbn | author | title | price | +---------------+-------------------+-------------------------------------+-------+ | 0-672-31697-8 | Michael Morgan | Java 開(kāi)發(fā) | 38.49 | | 0-672-31745-1 | Thomas Down | Linux 開(kāi)發(fā) | 27.49 | | 0-672-31509-2 | Pruitt,et al. | 時(shí)間管理 | 27.49 | | 0-672-31769-9 | Thomas Schenk | 開(kāi)放系統(tǒng)管理 | 54.99 | | 0-672-31000-1 | 李重樓 | web開(kāi)發(fā)筆記 | 99.99 | | 0-672-31000-4 | Nicholas C.Zakas | JavaScript高級(jí)程序設(shè)計(jì)(第3版) | 99.99 | | 0-672-31000-5 | 李重樓 | web插入數(shù)據(jù)庫(kù) | 53.20 | | 0-672-31000-6 | 李重樓 | 網(wǎng)站建設(shè)與拆毀 | 44.36 | +---------------+-------------------+-------------------------------------+-------+這是我寫(xiě)的測(cè)試數(shù)據(jù),后續(xù)你寫(xiě)的時(shí)候也可以添加一些自己的數(shù)據(jù),很有意思的。目前先看書(shū)就可以。
8.2.1考慮要建模的實(shí)際對(duì)象
當(dāng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)時(shí),我們經(jīng)常為現(xiàn)實(shí)世界的實(shí)體和關(guān)系建立模型,并且儲(chǔ)存這些實(shí)體對(duì)象與關(guān)系的信息。書(shū)中這句話(huà)就涵蓋了標(biāo)題的意思。
這一節(jié)也沒(méi)啥好說(shuō)的,你保證能理解數(shù)據(jù)庫(kù)表,列,行,字段,值,這些概念,看的懂書(shū)中給出圖例的鍵,外鍵就可以。
也別著急實(shí)際操作,切勿操之過(guò)急。畢竟古人云:捷克,斯洛伐克 嘛。
8.2.2避免保存冗余數(shù)據(jù)
來(lái),跟我讀:避免保存冗(rǒng )余數(shù)據(jù)。(多余的重復(fù)或啰嗦內(nèi)容(包括信息、語(yǔ)言、代碼、結(jié)構(gòu)、服務(wù)、軟件、硬件等等)均稱(chēng)為冗余)
別笑,我之前默念了好幾年的“沉余”,不會(huì),讀錯(cuò)不丟人,丟人的是 不會(huì),還不學(xué)。再讀一遍“ 冗(rǒng )余”。
這一節(jié)開(kāi)篇沒(méi)啥說(shuō)的做了一下自問(wèn)自答,你先看吧。
看完咱們來(lái)畫(huà)重點(diǎn)。
重點(diǎn)來(lái)了!!!
三個(gè)"不規(guī)則"
1.修改不規(guī)則
書(shū)中舉了Juile在下了訂單后搬家了,需要在三個(gè)地方更新她的地址,進(jìn)行三次同樣的操作。
這很容易使我們?cè)谝粋€(gè)地方修改數(shù)據(jù),從而導(dǎo)致數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致,因?yàn)閱?wèn)題發(fā)生在修改數(shù)據(jù)庫(kù)的時(shí)候所以稱(chēng)為“修改不規(guī)則”。
2.插入不規(guī)則
每次必須檢查Juile的數(shù)據(jù)(地址)是否與表中當(dāng)前行一致,如果不檢查,可能會(huì)有兩行關(guān)于Juile相互沖突的數(shù)據(jù),比如一條數(shù)據(jù)告訴我們Juile住二環(huán),另一條則可能表命明她住南四環(huán)。
因?yàn)槌霈F(xiàn)在插入數(shù)據(jù)的時(shí)候,所以稱(chēng)之為“插入不規(guī)則”。
3.刪除不規(guī)則
如果訂單交貨,需要將Juile的訂單信息從數(shù)據(jù)庫(kù)刪除,也意味著她的地址沒(méi)有了。她下次再訂貨,還要單獨(dú)的提交一遍地址。
因?yàn)閺臄?shù)據(jù)庫(kù)中刪除一行的時(shí)候發(fā)生的,所以稱(chēng)之為“刪除不規(guī)則”。(這點(diǎn)尤為重要,在電商公司拼命的獲取用戶(hù)隱私,地址這么重要的數(shù)據(jù),你在用戶(hù)收到快遞就給刪了?!這么設(shè)計(jì)表你能被老大打死!)
通常,數(shù)據(jù)庫(kù)的設(shè)計(jì)不應(yīng)該出現(xiàn)上述不規(guī)則中的任何一種。書(shū)里說(shuō)的很含蓄,“通常”不這么干。我給你翻譯翻譯就是:除了DEMO 和入門(mén)學(xué)習(xí)!別雞兒這么干!(你們技術(shù)老大,或者負(fù)責(zé)人讓你這么干!你讓他寫(xiě)下來(lái)簽字!)
這里主要是介紹一些數(shù)據(jù)庫(kù)設(shè)計(jì)的基本原則,業(yè)界通用的,所以別煩躁,好好看,萬(wàn)丈高樓平地起,輝煌還得靠自己!
8.2.3使用原子列值
你看到這的時(shí)候,我默認(rèn)你是看完8.2.3這一節(jié)了。
有哪不懂的嗎?
沒(méi)有?
太好了!
我有!
使用原子列值得意思是對(duì)每一行的每個(gè)屬性只儲(chǔ)存一個(gè)數(shù)據(jù)。你給我解釋一下這句話(huà),或者你腦子過(guò)一下,這句話(huà)什么意思。
如果你能毫不費(fèi)勁的答出這句話(huà)什么意思,我覺(jué)得你不應(yīng)該看我的筆記,因?yàn)槲矣X(jué)得沒(méi)必要。
如果你一帶而過(guò),沒(méi)有深入思考過(guò)這句話(huà),或者我問(wèn)了你,你解釋不上來(lái),那么,不要難過(guò),為啥呃?
因?yàn)槲业谝槐?#xff0c;還沒(méi)寫(xiě)筆記看的時(shí)候,也是一帶而過(guò),因?yàn)槲矣X(jué)得木有用,不用深入看,不影響我搞后面的內(nèi)容。
但是!
是誰(shuí)說(shuō)的來(lái)著?但是之前的話(huà)毫無(wú)意義!
我要寫(xiě)筆記給你看的時(shí)候,我被這句卡住了!我解釋不上來(lái)!
我百度,我谷歌這句話(huà),基本上全是照著書(shū)抄!根本沒(méi)解釋這句話(huà)!
經(jīng)過(guò)我不懈的翻書(shū)以及修改關(guān)鍵詞,我搜到了!
原文章見(jiàn)此處:一個(gè)小時(shí)學(xué)會(huì)MySQL數(shù)據(jù)庫(kù) ,我截取文章見(jiàn)此處:數(shù)據(jù)庫(kù)規(guī)范化。
原文中對(duì)MySQL數(shù)據(jù)庫(kù)有概要介紹,包括數(shù)據(jù)庫(kù)的歷史。大致閱讀時(shí)間半個(gè)小時(shí)。
而我呢,截取其中 1.4 部分,用來(lái)解釋上面那句話(huà)!
所謂第一范式(1NF)是指在關(guān)系模型中,對(duì)列添加的一個(gè)規(guī)范要求,所有的列都應(yīng)該是原子性的,即數(shù)據(jù)庫(kù)表的每一列都是不可分割的原子數(shù)據(jù)項(xiàng),而不能是集合,數(shù)組,記錄等非原子數(shù)據(jù)項(xiàng)。即實(shí)體中的某個(gè)屬性有多個(gè)值時(shí),必須拆分為不同的屬性。
在符合第一范式(1NF)表中的每個(gè)域值只能是實(shí)體的一個(gè)屬性或一個(gè)屬性的一部分。
簡(jiǎn)而言之,第一范式就是無(wú)重復(fù)的域。
這是其中第一范式的解釋,其中說(shuō):原子性,即實(shí)體中的某個(gè)屬性有多個(gè)值時(shí),必須拆分為不同的屬性。對(duì)“使用原子列值得意思是對(duì)每一行的每個(gè)屬性只儲(chǔ)存一個(gè)數(shù)據(jù)”。進(jìn)行了解釋。
如果不懂去看原文,我都能看懂,你應(yīng)該也行。還是不懂,私信我。咱倆一起學(xué)習(xí)!
補(bǔ)充一下:推薦看原文,別嫌棄麻煩!至少我截取的部分 數(shù)據(jù)庫(kù)規(guī)范化 要看,多看幾遍,不累的。
所以說(shuō),寫(xiě)閱讀筆記出來(lái),對(duì)自己也是一種提高,逼著自己仔細(xì)看書(shū),學(xué)的扎實(shí)~
8.2.4 選擇有意義的鍵
答案:略。
8.2.5考慮需要詢(xún)問(wèn)數(shù)據(jù)庫(kù)的問(wèn)題
答案:略。
8.2.6 避免多個(gè)空屬性的設(shè)計(jì)
答案:略。
8.2.7避免多個(gè)空屬性的設(shè)計(jì)
答案:略。
上面的 “答案:略” 是不是在初高中參考書(shū)里經(jīng)常見(jiàn)啊?
我是經(jīng)常見(jiàn),很煩人,但是那兩節(jié)我真的沒(méi)有要記得,所以略就略吧。
這三節(jié)主要是聯(lián)系上下文,傳達(dá)基礎(chǔ)理論知識(shí)的。多看幾遍沒(méi)壞處,我覺(jué)得沒(méi)必要是因?yàn)槲矣浤X子里了~啦啦啦啦
8.3 Web數(shù)據(jù)庫(kù)架構(gòu)
書(shū)里的圖8-9
一個(gè)典型的Web數(shù)據(jù)庫(kù)事務(wù)包含下列步驟,這些步驟在圖8-9已經(jīng)標(biāo)出。以Book-O-Rama書(shū)店為例,我們逐個(gè)解釋這些步驟。1)用戶(hù)的Web瀏覽器發(fā)出HTTP請(qǐng)求,請(qǐng)求特定Web頁(yè)面。例如,該用戶(hù)可能以HTML表單的形式,要求搜索Book-O-Rama書(shū)店里所有由Laura Thomson編寫(xiě)的圖書(shū)。搜索結(jié)果網(wǎng)頁(yè)稱(chēng)為results.php。
2)Web服務(wù)器收到results.php的請(qǐng)求,獲取該文件,并將它傳到PHP引擎,要求它處理。
3)PHP引擎開(kāi)始解析腳本。腳本中有一條連接數(shù)據(jù)庫(kù)的命令,還有執(zhí)行一個(gè)查詢(xún)(執(zhí)行搜索圖書(shū))的命令。PHP打開(kāi)通向MySQL數(shù)據(jù)庫(kù)的連接,發(fā)送適當(dāng)?shù)牟樵?xún)。
4)MySQL服務(wù)器接受數(shù)據(jù)庫(kù)查詢(xún)并處理。將結(jié)果(一個(gè)圖書(shū)的列表)返回到PHP引擎。
5)PHP引擎完成腳本運(yùn)行,通常,這包括將查詢(xún)結(jié)果格式化成HTML格式。然后再將輸出的HTML返到Web服務(wù)器。
6)Web服務(wù)器將HTML發(fā)送到瀏覽器。這樣用戶(hù)就可看到她所搜索的圖書(shū)。
這個(gè)過(guò)程基本上與腳本引擎和數(shù)據(jù)庫(kù)服務(wù)器無(wú)關(guān)。通常,Web服務(wù)器軟件,PHP引擎和數(shù)據(jù)庫(kù)服務(wù)器都在同一臺(tái)機(jī)器上運(yùn)行。
但是,數(shù)據(jù)庫(kù)服務(wù)器在另外一臺(tái)機(jī)器上運(yùn)行也是非常常見(jiàn)的。這樣做是出于保密、提高性能以及負(fù)載平衡的原因而考慮的。從開(kāi)發(fā)的角度來(lái)看,要做的事情基本上是一樣的,但是它能夠明顯提高性能。
這一節(jié)我是純照書(shū)敲的,如過(guò)你搞過(guò)前端開(kāi)發(fā),應(yīng)該一看就懂。
不懂就熟讀三遍,學(xué)完了整本書(shū)你再回來(lái)看這段,你就會(huì)發(fā)現(xiàn)真的沒(méi)有什么要說(shuō)的,啦啦啦啦~
第8章的內(nèi)容完畢了,其實(shí)你要是跟著我這筆記看,包括反復(fù)閱讀加理解,時(shí)間往寬了說(shuō),一天!8個(gè)小時(shí)~絕對(duì)能整明白的,不要怕難~加油哦~看好你哦~
總結(jié)
以上是生活随笔為你收集整理的php spry文本域_《PHP和MySQL Web 开发》第8章 设计Web数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面试 jsp转发和重定向
- 下一篇: SQL自定义完整性