我 14 年前從事 Web 方面的工作時(shí),它是一個(gè)靜態(tài)實(shí)體。使用數(shù)據(jù)庫(kù)非常困難,主要是因?yàn)樵谟脩魡螕糁亮硪粋€(gè)頁(yè)面的鏈接時(shí)無(wú)法保持?jǐn)?shù)據(jù)庫(kù)連接打開。
當(dāng)我學(xué)習(xí) HTML 時(shí),數(shù)據(jù)庫(kù)主要用于靜態(tài)報(bào)告。要獲得數(shù)據(jù)?只需將數(shù)據(jù)放到帶有大量 HTML 標(biāo)簽的表中。對(duì)于我來(lái)講,這實(shí)際上是一個(gè) Web 0 年代。所有事情都很困難,每個(gè)人都必須重頭做起。
很快,每個(gè)公司都需要擁有自己的內(nèi)部網(wǎng)。很容易通過(guò) Apache 或 IIS Web 服務(wù)器建立內(nèi)部網(wǎng)。事實(shí)上,它們可能太容易建立:它們興旺起來(lái)了嗎?但是隨后幾個(gè)月就停止了。最后,建立內(nèi)部網(wǎng)的人員被各種請(qǐng)求拖垮??梢蕴砑有菁贂r(shí)間表嗎?可以添加公司事件嗎?可以創(chuàng)建一個(gè)休假輸入表單嗎?(法國(guó)有許多休假,必須很好地安排這些休假)。
諸如 Day、DirectNews、Joomla、Drupal 和許多其它(參見 cmsmatrix.org 以獲取更完整的列表)內(nèi)容管理系統(tǒng)(Content Management System,CMS)開始出現(xiàn),幫助建立和維護(hù) Web 站點(diǎn)。每個(gè)人都能夠添加和修改內(nèi)容(借助于一些規(guī)則、權(quán)限等)。
在大部分 CMS 包中,內(nèi)容不存儲(chǔ)在文件中,而是存儲(chǔ)在數(shù)據(jù)庫(kù)中,通常以非常結(jié)構(gòu)化的方法進(jìn)行存儲(chǔ):內(nèi)容以層次結(jié)構(gòu)組織(帶有分支和葉子的樹,葉子通常是一系列特定主題的內(nèi)容)。數(shù)據(jù)庫(kù)可以進(jìn)行這項(xiàng)工作。我們都經(jīng)歷過(guò)數(shù)據(jù)庫(kù) 101,根據(jù)主題、副主題和 n 層主題存儲(chǔ)數(shù)據(jù)。當(dāng)您學(xué)習(xí)或教授表遞歸時(shí),它是一個(gè)很好的例子。
這是 Web 1.0 的誕生,是一種更聰明地存儲(chǔ)和共享信息的方法。 []
您可能聽說(shuō)過(guò)一個(gè)理論,兩個(gè)互不相識(shí)的人可以通過(guò)數(shù)量有限的其他人而彼此認(rèn)識(shí)(流行的說(shuō)法是相隔六個(gè)人)。也就是說(shuō),如果我想要聯(lián)系 Barack Obama,那么在他和我之間最多有六個(gè)人。或者,如果我想要與某個(gè)軟件公司的 CEO 聊天,但是我被他的公共關(guān)系經(jīng)理人阻隔。我可能會(huì)詢問(wèn)我認(rèn)識(shí)的人,他們是否在該公司有任何聯(lián)系人可以為我介紹那個(gè) CEO。那個(gè)聯(lián)系人可能知道某人(依次類推),而那個(gè)人能夠直接將我介紹給 CEO。
對(duì)于我來(lái)講,這個(gè)例子演示 Web 2.0 如何開始:人們開始創(chuàng)建社會(huì)網(wǎng)絡(luò)和其它工件(這在今天的站點(diǎn)很常見,比如 LinkedIn、Xing、Viadeo 等):用戶生成的內(nèi)容、自助服務(wù)和 mashup 等。
我為什么在數(shù)據(jù)庫(kù)雜志中討論 Web 和社會(huì)網(wǎng)絡(luò)的歷史?Web 最初從使用文件開始,然后是層次結(jié)構(gòu)數(shù)據(jù),最后是關(guān)系數(shù)據(jù)結(jié)構(gòu)。聽上去熟悉嗎?回憶一下數(shù)據(jù)庫(kù)的歷史,您將想起它們也是從文件開始,然后是層次結(jié)構(gòu)系統(tǒng),最后是關(guān)系模型。
下面是如何應(yīng)用我們已經(jīng)了解的知識(shí)。
經(jīng)驗(yàn) 1:隨著時(shí)間的推移,Web 站點(diǎn)將變得越來(lái)越復(fù)雜。即使不變得復(fù)雜,它最終也會(huì)涉及到復(fù)雜的數(shù)據(jù)、非結(jié)構(gòu)化的數(shù)據(jù),以及來(lái)源不同的數(shù)據(jù)。
經(jīng)驗(yàn) 2:Web 站點(diǎn)不僅僅是數(shù)據(jù)的緩沖區(qū);它是一個(gè)活動(dòng)的應(yīng)用,將必須提供越來(lái)越多的交互式服務(wù)。采取什么樣的 Web 項(xiàng)目數(shù)據(jù)庫(kù)取決于項(xiàng)目需求。與其它開發(fā)任務(wù)不同,Web 項(xiàng)目隨著需求的發(fā)展而發(fā)展。當(dāng)建立您的公司 Web 站點(diǎn)時(shí),有人考慮到添加博客、添加訂購(gòu)系統(tǒng)嗎或添加社會(huì)網(wǎng)絡(luò)嗎?
有些人可能會(huì)說(shuō):“我們有一個(gè)很好的 Web 站點(diǎn),不需要添加博客或客戶網(wǎng)絡(luò)”。很好,那么請(qǐng)等待營(yíng)銷經(jīng)理從下一個(gè)會(huì)議帶回來(lái)的消息吧。請(qǐng)記住,您的 Web 站點(diǎn)在過(guò)去的 12 至 13 年中是如何必須進(jìn)行改變的。 []
如果您在小公司工作,不要認(rèn)為您就是例外;公司規(guī)模無(wú)關(guān)緊要。小型公司和大型公司一樣,都使用博客、Facebook、LinkedIn 或創(chuàng)建他們自己的在線網(wǎng)絡(luò)。
經(jīng)驗(yàn) 3:您的 Web 站點(diǎn)必須不斷變化。每天都有添加新服務(wù)的請(qǐng)求。
因此現(xiàn)在您歸納出結(jié)論:Web 不再是靜止不動(dòng)的。但是這和數(shù)據(jù)庫(kù)有什么關(guān)系嗎?
選擇合適的數(shù)據(jù)庫(kù)不但取決于目前的需求,而且取決于將來(lái)的需求。如果您選擇一個(gè)開源的、基于 ISAM 的引擎,而以后需要實(shí)現(xiàn)一個(gè)與您的物理倉(cāng)庫(kù)交互的在線商店,那么應(yīng)該怎么辦呢?
在這方面,我比較欣賞 IBM 關(guān)于 DB2 Express-C 的策略。DB2 Express-C 可以免費(fèi)使用;隨著 Web 站點(diǎn)或其它需求的發(fā)展,客戶可以逐步采購(gòu)各種許可選項(xiàng)。
經(jīng)驗(yàn) 4:設(shè)計(jì) Web 應(yīng)用程序時(shí)深謀遠(yuǎn)慮并不是一種奢侈的行為。我當(dāng)前的項(xiàng)目之一與手機(jī)生產(chǎn)商 eLPi (elpitronic.com) 有關(guān)。為了激活電話的保修期,客戶需要在線注冊(cè)。公司想要一個(gè)專注于用戶體驗(yàn)的和諧界面。因此,當(dāng)客戶進(jìn)入法語(yǔ)支持站點(diǎn)時(shí),他們需要選擇一個(gè) eLPi 電話可用的法語(yǔ)國(guó)家,然后從 AJAX 風(fēng)格的列表中選擇一個(gè)城市。要驗(yàn)證注冊(cè),客戶輸入電話的唯一編號(hào)(IMEI)并基于客戶位置選擇出售該電話的經(jīng)銷商。
在傳統(tǒng)的 Web 1.0 站點(diǎn)中,消費(fèi)者必須填寫冗長(zhǎng)的表單。在更高級(jí)的 Web 1.0 站點(diǎn)中,消費(fèi)者需要輸入個(gè)人資料,從 210 個(gè)或更多選項(xiàng)的列表中選擇一個(gè)國(guó)家,并單擊 “提交” ,然后輸入電話的 IMEI 編號(hào)并再次單擊 “提交”,然后選擇一個(gè)經(jīng)銷商(先選擇國(guó)家并提交,然后選擇城市并提交,最后在城市中選擇經(jīng)銷商并提交)。 []
在這兩種情況中,您可以想像進(jìn)行錯(cuò)誤檢查和錯(cuò)誤報(bào)告的次數(shù)。這個(gè)過(guò)程將成為一場(chǎng)惡夢(mèng),我的客戶開始懷疑他的顧客為何不在支持站點(diǎn)上注冊(cè)。
在 Web 2.0 中,通過(guò)執(zhí)行后臺(tái)請(qǐng)求為用戶簡(jiǎn)化了這個(gè)過(guò)程。您可以在 www.elpisupport.com/elpitronic/Index.html#inscription-customer 上親自試驗(yàn)。當(dāng)然,要完成注冊(cè),您需要購(gòu)買一臺(tái) eLPi 的電話(我因客戶的成功而激動(dòng))。
讓我們看一下幕后發(fā)生的情況。當(dāng)消費(fèi)者進(jìn)入站點(diǎn)時(shí),運(yùn)行第一個(gè)查詢來(lái)獲得可能的國(guó)家。然后用戶開始鍵入他所在的城市;鍵入三個(gè)字符后,每次鍵擊都運(yùn)行一個(gè)查詢來(lái)選擇城市,這涉及到另外兩個(gè)或三個(gè)查詢。消費(fèi)者需要驗(yàn)證 IMEI 編號(hào),這至少還需要一個(gè)查詢。最后,用戶需要選擇他的經(jīng)銷商(通過(guò)先選擇國(guó)家、城市,然后選擇經(jīng)銷商)。整個(gè)過(guò)程需要三個(gè)查詢。一個(gè)輸入表單的總查詢數(shù)是多少?大約 10 個(gè)。
我可以想像到這樣的觀點(diǎn):“嘿,在 Web 1.0 中您需要較少的查詢,因?yàn)槟鷮⑻^(guò)城市查詢,并且數(shù)據(jù)庫(kù)上的負(fù)載將降低。我可以使用開源 ISAM 引擎”。
您當(dāng)然可以使用。但是,讓我們來(lái)看一下事實(shí)。請(qǐng)記住,在 Web 1.0 中,您將需要許多 “回合”。每個(gè)回合中都需要進(jìn)行處理。只有當(dāng)響應(yīng)時(shí)間超出四秒時(shí)用戶才會(huì)覺得 Web 站點(diǎn)令人討厭。那對(duì)于 Web 1.0 方法而言已經(jīng)足夠 —— 它不在乎數(shù)據(jù)訪問(wèn)、查詢和處理消耗 100 毫秒或 983 毫秒,只要它們?cè)谒拿腌妰?nèi)完成。
在 Web 2.0 中,當(dāng)您鍵入所在城市的名稱時(shí),開始篩選列表。系統(tǒng)不會(huì)需要 983 毫秒來(lái)篩選列表。但是需要一個(gè)響應(yīng)更快的系統(tǒng)來(lái)完成這項(xiàng)工作。
當(dāng)然,開發(fā)人員可以開發(fā)緩存機(jī)制來(lái)增強(qiáng)性能。開發(fā)人員喜歡實(shí)現(xiàn)緩存機(jī)制。但是管理人員不喜歡緩存機(jī)制:開發(fā)人員必須花時(shí)間進(jìn)行開發(fā),它們的可靠性可能比較差,并且需要維護(hù)。
經(jīng)驗(yàn) 5:讓您的數(shù)據(jù)庫(kù)引擎完成給分配給它的工作:數(shù)據(jù)分發(fā)、數(shù)據(jù)處理等?,F(xiàn)在您獲得這些能力了,是嗎?如果您的引擎執(zhí)行查詢緩存和提供極好的事務(wù)吞吐量,那么您的開發(fā)團(tuán)隊(duì)就沒有必要重新重現(xiàn)這一切。
經(jīng)驗(yàn) 6:不必開發(fā)復(fù)雜的緩存機(jī)制,而應(yīng)該專注于用戶體驗(yàn)(UX)、工效學(xué)或其它給客戶帶來(lái)更多價(jià)值的工作。我公司的下一個(gè)項(xiàng)目正在朝這個(gè)方向發(fā)展。通過(guò)讓數(shù)據(jù)庫(kù)來(lái)處理數(shù)據(jù)庫(kù)引擎,開發(fā)人員可以專注于應(yīng)用程序的其它部分,例如使應(yīng)用程序更簡(jiǎn)單和更易于使用。那將滿足客戶的要求:“我不希望擁有一個(gè) 4 年壽命的用戶界面;我想要一個(gè) 65 年壽命的用戶界面”。采用數(shù)據(jù)庫(kù)
對(duì)于 Web 2.0,還有更多的經(jīng)驗(yàn)需要學(xué)習(xí)。用戶想要更多功能和更易于使用的組件;他們想要進(jìn)行交互并在站點(diǎn)上留下足跡。同時(shí),可用的數(shù)據(jù)和要管理的數(shù)據(jù)越來(lái)越多。最終的經(jīng)驗(yàn)是什么?數(shù)據(jù)庫(kù)是我們的朋友。
類別:廣告、包裝
天數(shù):20 WD
類別:外貿(mào)、貿(mào)易
天數(shù):20 WD
云度新聞 電子商務(wù) 行業(yè)新聞 網(wǎng)絡(luò)營(yíng)銷 行業(yè)門戶 網(wǎng)站建設(shè)
建站經(jīng)驗(yàn) 網(wǎng)站SEO優(yōu)化 網(wǎng)頁(yè)設(shè)計(jì) WEB2.0 flash網(wǎng)站建設(shè) 網(wǎng)絡(luò)編程