一个MYSQL样例数据库
2007-11-11 15:36:31 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備胶绮崝锕傚礈濞嗘挸绀夐柕鍫濇川绾剧晫鈧箍鍎遍幏鎴︾叕椤掑倵鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝懐顦ч柣蹇撶箲閻楁鈧矮绮欏铏规嫚閺屻儱寮板┑鐐板尃閸曨厾褰炬繝鐢靛Т娴硷綁鏁愭径妯绘櫓闂佸憡鎸嗛崪鍐簥闂傚倷鑳剁划顖炲礉閿曞倸绀堟繛鍡樻尭缁€澶愭煏閸繃宸濈痪鍓ф櫕閳ь剙绠嶉崕閬嶅箯閹达妇鍙曟い鎺戝€甸崑鎾斥枔閸喗鐏堝銈庡幘閸忔﹢鐛崘顔碱潊闁靛牆鎳愰ˇ褔鏌h箛鎾剁闁绘顨堥埀顒佺煯缁瑥顫忛搹瑙勫珰闁哄被鍎卞鏉库攽閻愭澘灏冮柛鏇ㄥ幘瑜扮偓绻濋悽闈浶㈠ù纭风秮閺佹劖寰勫Ο缁樻珦闂備礁鎲¢幐鍡涘椽閸愵亜绨ラ梻鍌氬€峰ù鍥敋閺嶎厼鍨傞幖娣妼缁€鍐煥濠靛棙顥滈柣锕備憾濮婂宕掑▎鎺戝帯濡炪們鍨归敃銈夊煝瀹ュ鍗抽柕蹇曞Х椤斿姊洪幖鐐插姶闁告挻鐟╅幃姗€骞庨懞銉у幐闂佸憡鍔戦崝搴㈡櫠閺囩姷纾奸柍褜鍓熷畷姗€鍩炴径鍝ョ泿闂傚⿴鍋勫ú銈吤归悜鍓垮洭鏁冮埀顒勬箒濠电姴锕ら悧蹇涙偩濞差亝鐓涢悘鐐额嚙婵″ジ鏌嶇憴鍕伌鐎规洖宕埢搴ょ疀閹惧妲楃紓鍌氬€搁崐鐑芥⒔瀹ュ绀夐幖杈剧到閸ㄦ繃銇勯弽顐粶濡楀懘姊洪崨濠冨闁搞劍澹嗙划濠氬箮閼恒儱鈧敻鏌ㄥ┑鍡欏嚬缂併劏妫勯湁闁绘ǹ宕甸悾鐑樻叏婵犲啯銇濇俊顐㈠暙閳藉鈻庨幇顓炩偓鐑芥⒑鐠囨彃顒㈤柣顓у櫍瀹曪繝骞庨懞銉ヤ粧濡炪倖娲嶉崑鎾垛偓瑙勬礀閻栧ジ銆佸Δ浣哥窞閻庯綆鍋呴悵顐⑩攽閻樻剚鍟忛柛锝庡灣瀵板﹪宕滆閸嬫挾绮☉妯绘悙缂佺姵鐓¢弻娑㈠Ψ椤旂厧顫╅梺钘夊暟閸犳牠寮婚敐澶婃闁圭ǹ瀛╅崰鎰版⒑閼姐倕鏋庣紓宥咃躬瀵鈽夐埗鈹惧亾閿曞倸绠f繝闈涙川娴滎亝淇婇悙顏勨偓銈夊礈濞嗘挻鍋嬮柛鈩冪▓閳ь剚妫冨畷姗€顢欓崲澹洤绠圭紒顔煎帨閸嬫捇鎳犻鈧崵顒傜磽閸屾艾鈧娆㈤敓鐘茬獥婵°倕鎳庣粻浼存煙闂傚鍔嶉柛瀣ф櫊閺岋綁骞嬮敐鍡╂缂佺虎鍘搁崑鎾绘⒒娴h櫣甯涢柛鏃€娲滅划鏃堟濞磋櫕鐩畷姗€顢欓崗鍏夹氶梻渚€鈧偛鑻晶顖炴煏閸パ冾伃妤犵偞甯¢獮瀣攽閹邦亞纾婚梺璇叉唉椤骞愭搴g焼濞撴埃鍋撻柛鈺冨仱楠炲鏁傞挊澶夋睏闂備礁婀辩划顖滄暜閳哄倸顕遍柍褜鍓涚槐鎾存媴閻熸澘濮㈤悷婊勫閸嬬喖宕氶幒鎴旀瀻闁规儳鐤囬幗鏇炩攽閻愭潙鐏﹂柣顓у枛閳讳粙顢旈崼鐔哄幍闁荤喐鐟ョ€氼剚鎱ㄩ崶銊d簻闁靛濡囩粻鐐存叏婵犲啯銇濋柡灞芥嚇閹瑩鎳犵捄渚純濠电姭鎷冮崒姘ギ闂佸搫鐬奸崰鏍箹瑜版帩鏁冮柨婵嗘噽閿涙捇姊绘担鐟邦嚋缂佽瀚板畷鎴濃槈閵忕姷鍘撮梺鐟邦嚟婵參宕戦幘缁樻櫜閹煎瓨锚娴滅偓銇勯幘瀵糕姇婵炲懎锕弻锛勪沪閻e睗锝嗙箾绾板彉閭鐐茬箳娴狅箓鎸婃径濠呭帿闂傚倸鍊烽悞锕傛儑瑜版帒纾归柡鍥ュ灩缁犵娀鏌熼柇锕€鏋熸い顐f礋閺岀喖骞嗚閹界姴鈹戦娑欏唉闁哄本鐩獮姗€寮堕幋鐘点偡闂備礁鎲¢幐绋跨暦椤掑嫧鈧棃宕橀鍢壯囨煕閳╁喚娈樺ù鐘虫倐濮婃椽鎳¢妶鍛瘣闂佸搫鎳忛惄顖炲箖妤e啯鍊婚柦妯猴級閵娧勫枑濠㈣埖鍔曠壕濠氭煙閸撗呭笡闁哄懏鐓¢獮鏍垝閻熸澘鈷夐梺璇茬箰缁夌懓顫忛搹鍦<婵☆垵顕ч棄宥呪攽閻愭彃绾ч柨鏇樺灪娣囧﹪鎮界粙璺槹濡炪倖鐗楀銊╂偪閳ь剟姊婚崒姘偓鎼佹偋婵犲嫮鐭欓柟閭﹀枦婵娊鏌ゅù瀣珖缁炬崘妫勯湁闁挎繂鐗婇ˉ澶愭煟閹炬潙濮堥柟渚垮妼铻g紒瀣仢椤鈹戦垾鍐茬骇闁告梹鐟╅悰顔嘉熼崗鐓庣彴闂佽偐鈷堥崜锕€危娴煎瓨鈷掑ù锝嚽归弳閬嶆煙绾板崬浜扮€规洘鍔栫换婵喰掔粙鎸庡枠鐎殿喛鍩栭幆鏃堝箻鐎涙ɑ婢戝┑锛勫亼閸婃牕顫忔繝姘ラ悗锝庝憾閸熷懘鏌曟径娑滅濞存粍绮嶉妵鍕箻鐠鸿桨绮跺┑鈩冨絻椤兘寮婚敐澶嬫櫜闁搞儜鍐ㄧ婵°倗濮烽崑鐐垫暜閿熺姷宓侀悗锝庡枛缁秹鏌嶈閸撶喖骞冨Δ浣虹瘈婵﹩鍘搁幏娲煟閻斿摜鎳冮悗姘煎弮瀹曟洖螖閸涱喚鍘卞┑鈽嗗灥閵嗏偓闁稿鎹囬幃銏ゅ箵閹烘垹闃€婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘垿濡甸崟顖氱闁告鍋熸禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘撻梻浣哥仢椤戝懘鎮橀敃鍌涚厪闁搞儜鍐句純濡ょ姷鍋炵敮鈥崇暦閸楃儐娓婚柟顖嗗本顥$紓鍌氬€搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾閽樻繈姊洪鈧粔鎾几娴g硶鏀介柣妯挎珪閻ㄦ垹鈧鎸风欢姘跺蓟濞戙垹鐒洪柛鎰典簴婵洭姊虹粙鍖″姛闁稿繑锕㈠璇测槈濡攱鏂€闂佺硶鍓濋〃蹇斿閳ь剚淇婇悙顏勨偓鏍ь潖瑜版帒绀夐柡鍥ュ灩閻撴﹢鏌熸潏楣冩闁稿﹤顭烽弻娑㈠Ψ閵忊剝鐝栭柡宥忕節濮婄粯鎷呴崨濠傛殘闂佸湱枪椤兘骞冮悜鑺ユ櫆闁伙絽澶囬弨铏節閻㈤潧孝婵炶绠撳畷鐢稿礃椤旂晫鍘撻梺鍛婄箓鐎氼剟寮抽悢鍏肩叆婵炴垶鐟ч惌鎺撴叏婵犲洨绱伴柕鍥ㄥ姍楠炴帡骞嬪⿰鍐╃€抽梻鍌欑閹诧繝鎮烽妷锔绘闁归棿绀侀悡婵嬫煙閻愵剚鐏遍柛顐邯閺屾盯顢曢妶鍛亖闂佸憡蓱閹倿寮婚敐鍫㈢杸闁哄洨鍋橀幋椋庣磼缂併垹骞栭柣鏍帶閻g兘骞嬮敃鈧粻濠氭偣閸ヮ亜鐨洪柣銈傚亾婵犵數鍋犻幓顏嗗緤娴犲绠熼柨鐔哄Т绾捐銇勯弽顐沪闁抽攱鍨归惀顏堫敇閻愭潙娅f繛瀛樼矊缂嶅﹪骞冪捄琛℃闁哄诞鍐ㄐ曢梻浣虹《閺備線宕戦幘鎰佹富闁靛牆妫楃粭鎺楁煕閻曚礁浜伴柟顖氬暙鐓ゆい蹇撴噽閸樺憡绻涙潏鍓у埌婵犫偓鏉堛劍娅犳い蹇撶墛閻撳啴鎮峰▎蹇擃仼闁诲繑鎸抽弻鐔碱敊閻e本鍣伴悗娈垮枛閻栧ジ鐛€n喗鍋愰弶鍫厛閺佸洭姊婚崒姘偓椋庣矆娴i潻鑰块弶鍫涘妿娴犳岸姊绘担渚敯濠殿喓鍊楅崚鎺撴償閵娿儳顦梺鍦劋椤ㄥ懐鐚惧澶嬬厱妞ゆ劑鍊曢弸搴∶归悩鐑橆仩缂佽鲸鎸婚幏鍛村礈閹绘帒澹嶆俊鐐€栧ú妯荤箾婵犲洤鏋侀柛鎰靛枛绾惧吋绻涢幋鐐跺妤犵偛鐗撳缁樻媴閸涘﹥鍎撳┑鐐茬湴閸ㄨ棄鐣峰┑鍡欐殕闁告洦鍓欓埀顒€鐖奸弻锝呂熼懖鈺佺闂佺粯鎸诲ú鐔煎蓟閻斿吋鍤嬫い鎺嗗亾濠碉紕鍘ч湁婵犲﹤瀚崝銈夋煃鐟欏嫬鐏撮柡浣哥Ч瀹曠喖顢曢埄鍐╃窔闂傚倷鑳舵灙闁挎洏鍎甸幃褔鎮╅懠顒佹濠电娀娼ч鍡涘疾濠靛鐓冪憸婊堝礈閻旂厧鐏抽柨鏇炲€搁柨銈嗕繆閵堝倸浜鹃梺缁樺笒閻忔岸濡甸崟顖氱鐎广儱鐗嗛崢锛勭磽娴e搫孝濠⒀傜矙閸┾偓妞ゆ巻鍋撻柛妯荤矒瀹曟垿骞橀弬銉︽杸闂佺粯枪娴滎剛绮i弮鍫熺厱閻庯綆鍋掑▓鏃堟煃鐟欏嫬鐏存い銏$懅濞戠敻鎮滈悾灞藉冀濠电姷鏁搁崑娑㈠箯閹寸姴绶ら柛顭戝暎閿濆绠涢柡澶庢硶椤斿﹪姊洪悷鏉挎毐缁剧虎鍙冨畷浼村箻鐠囪尙顔嗛梺缁樶缚缁垶宕甸幋锔界厾缂佸娉曟禒娑欐叏閿濆棗濮嶆慨濠傤煼瀹曟帒顫濋钘変壕闁绘垼濮ら崵鍕煠閸濄儲鏆╁ù鐘崇缁绘繈鎮介棃娑楃捕濡炪倖娲﹂崣鍐ㄧ暦濡も偓铻e〒姘煎灠濞堛劌顪冮妶鍡楀闁稿﹥鐗滈埀顒佺濮樸劑鍩€椤掑倹鍤€濠㈢懓锕畷浼村冀瑜夐弸鏃堟煏婵犲繐顩紒鈾€鍋撻梻浣圭湽閸ㄨ棄岣胯閻楀海绱撴担鍝勪壕婵犮垺岣跨划鏃堟偡闁箑娈ㄩ梺鍝勮閸庤京绮婚悽鍛婄厵闁绘垶岣跨粻姗€鏌涢悙鍨毈闁哄矉缍侀幃鈺呮倻濮楀棔鍝楅梺璇茬箰缁诲牓宕濆畝鍕垫晩闊洦绋戝敮閻熸粌顦靛畷鎴﹀箻閼搁潧鏋傞梺鍛婃处閸撴瑧鍠婂鍛斀闁宠棄妫楁禍婵堢磼鐠囨彃鈧潡鏁愰悙鍓佺杸婵炴垶鐟﹂崕顏堟⒑闂堚晛鐦滈柛姗€绠栭弫宥呪堪閸愶絾鏂€闂佸疇妫勫Λ妤呮倶閻樼粯鐓欑痪鏉垮船娴滀即鏌ㄥ┑鍫濅粶妞ゆ挸銈稿畷鍫曞煛閸愯法闂繝鐢靛仩閹活亞绱炴笟鈧棢闁规崘顕х粈澶屸偓骞垮劚椤︿即鎮″▎鎴犵<閻庯綆浜炴禒銏ゆ煛閸℃稐鎲鹃柡宀嬬秮閺佹劙宕惰楠炲螖閻橀潧浠滄い鎴濐樀瀵偊宕橀鑲╁姦濡炪倖甯掗崐缁樼▔瀹ュ應鏀介柣妯虹-椤f煡鏌涚€e墎绉柡灞剧洴婵$兘骞嬪┑鍡樻婵°倗濮村ú顓㈠箖濡ゅ啯鍠嗛柛鏇ㄥ墮绾板秶绱撴担鍓叉Ч闁瑰憡濞婇崹楣冨籍閸繄顦ㄥ銈嗘煥濡插牐顦归柡灞剧洴閸╁嫰宕楅悪鈧禍顏勎涢崟顐悑闁搞儮鏅濋敍婵囩箾鏉堝墽鍒板鐟帮躬瀹曟洟骞囬悧鍫㈠幈闂侀潧枪閸庨亶銆傚畷鍥╃<妞ゆ梻鈷堥崕蹇斻亜閹惧啿鎮戠€垫澘瀚埀顒婄秵娴滄牠宕戦幘缁樼叆閻庯絻鍔嬬花濠氭⒑閻熺増鎯堢紒澶婄埣钘濋柨鏃堟暜閸嬫挸鈻撻崹顔界亪闂佽绻戠换鍫ュ春閻愬搫绠i柨鏇楀亾闁绘搫绻濋弻娑㈠焺閸愮偓鐣兼繛瀵稿閸ㄨ泛顫忓ú顏勫窛濠电姴娴烽崝鍫曟⒑閸涘﹥澶勯柛娆忛鐓ら柛娑橈梗缁诲棝鏌曢崼婵堢闁告帊鍗抽弻娑㈡偆娴e摜浠搁悗瑙勬礃閸旀瑥鐣疯ぐ鎺濇晝闁挎繂鎳庢导搴㈢節绾版ɑ顫婇柛銊﹀▕瀹曘垼顦崇紒鍌氱У閵堬綁宕橀埡浣插亾閸偅鍙忔俊顖滃帶娴滈箖鎮楀鐐

核心提示: 本节介绍一个样例数据库,这个数据库在本书各个部分都可能用到,一个MYSQL样例数据库,在学习将MySQL(和PHP搭配之最佳组合)投入工作时,这个数据库为您提供了参考的例子,因此,一但学会了编写会员更新的查询,我们主要从前面描述过的两种情形来给出例子: ■ 机构的秘书方案,我们需要一些比“机构”更为明确的信息
本节介绍一个样例数据库,这个数据库在本书各个部分都可能用到。在学习将MySQL(和PHP搭配之最佳组合)投入工作时,这个数据库为您提供了参考的例子。我们主要从前面描述过的两种情形来给出例子:
■ 机构的秘书方案。我们需要一些比“机构”更为明确的信息,所以现在就来构造一个,它具有这样一些特性:它由为了研究美国历史这个共同目的而聚集在一起的一群人组成(一时找不到更好的名称,就暂且称为美国历史同盟)。在交会费的基础上定期更新
各会员的资格。会费构成了此同盟的活动经费,如出版报纸“美国编年历”。此联盟也有一个小Web 站点,但开发出的功能不多。迄今这个站点只限于提供一些基本的信息,如本团体的性质,负责人是谁,什么样的人可以参加等。
■ 学分保持方案。在学分时段中,需要管理被测试者、记录得分并赋予得分等级。然后确定最后的得分等级,将其与出勤率一道交给学校办公室。现在让我们根据如下两个要求来进一步考虑这些情况:
■ 必须确定希望从数据库中得到什么信息,即,希望达到什么目的。
■ 必须计划好要向数据库输入什么,即将要保存什么数据。或许,在考虑向数据库输入什么数据以前,逆向考虑一下需要从数据库输出什么数据。在能够对数据进行检索前,必须将数据送入数据库。但是,使用数据库的方法是受您的目标驱动的,这些方法与希望从数据库取出何种信息的关系较之与向数据库输入何种信息的关系更为紧密。除非打算以后使用这些信息,否则肯定不会浪费时间和精力将它们输入数据库。
1.2.1美国历史同盟这个方案的初期状况是您作为同盟的秘书,利用字处理文档维护会员清单。这样就生成一个打印的姓名地址录来说还是可以应付的,但是在利用这些信息做别的事时就会受到限制。假定您打算做下列工作:
■ 希望能够利用该姓名地址录产生不同格式的输出,并且只给出相应用途所需的信息。目标之一是生成每年的打印姓名地址录,这是该同盟过去就需要的,您打算继续打印。除此之外,可以设想将姓名地址录中的信息派一些别的用途,如在同盟的年度宴会上
所提供的节目单中给出一个当前的会员清单。这个应用涉及不同的信息集合。打印的姓名地址录中使用了每个会员条目的所有内容。而对于宴会节目单,只需要取出会员名字即可(如果采用字处理器要做到这一点有时是不太容易的)。
■ 希望搜索姓名地址录查找其条目满足某些条件的会员。例如,希望知道哪些会员不久就需要更新其会员资格。另外涉及搜索的应用是由于需要维护每个会员的关键字列表而产生的。这些关键字描述了每个会员特别感兴趣的美国历史的某个方面(如内战、经济萧条、公民权利或托马斯·杰佛逊的生活等)。会员们有时会向您要一份与他们自己有类似爱好的会员的清单,您一定乐于满足他们的这种要求。
■ 希望让姓名地址名录在同盟的Web 站点上联机使用。这对会员和您都是很有好处的。如果您能够将姓名地址录用某种合适的自动过程转换为Web 页,则这个姓名地址录的联机版就可以一种比打印版更及时的方式保持最新信息。而且如果能使这个联机姓名地址录可供搜索,那么会员就能够自己方便地查找信息了。例如,某个会员希望知道其他对内战感兴趣的会员,他就可以自己将这些会员找出而不用请您帮他查找,而您也不用花时间去做这件事了。我们清楚地知道,数据库并不是世界上最令人激动的东西,因此,我们也不打算狂热地
声称,使用数据库可以促进创造性的思维。但是,当您停止将信息视为某种必须与之搏斗的东西(在用字处理文档时确实是这样的),并开始将其想像为某种可以相对容易地操纵的事物(正如希望用MySQL(和PHP搭配之最佳组合)所做到的那样)时,您提出某种使用或表示信息的新方法的能力将会得到某种程度的解放,例如下面这些例子就是一些新方法:
■ 如果数据库中的信息能够以联机姓名地址录的形式移到Web 站点中,那么您可能会让信息以其他的方式流动。例如,如果会员能够联机编辑自己的条目,对数据库进行更新,那么您就不必自己做所有的编辑工作了,这样有助于使姓名地址录中的信息更为准确。
■ 如果您在数据库中存储Email 地址,那么可以利用它们来发送Email 给那些相当长的一段时间没有更新自己的条目的会员。发出的消息可以向这些会员显示他们的条目内容,请他们查看,然后指示怎样利用Web 站点提供的实用工具做所需的修改。
■ 数据库不仅以关联到会员表的方式帮助使Web 站点更为有用。比方说,同盟出版了一份报纸“美国编年史”,每一期中都有一个给小孩子的版面,内含历史试题。最近有几期主要集中在美国总统的传记上。同盟的Web 站点也可以包含给孩子的版面,这样使试题联机。通过放置从数据库中取出的试题并让Web 服务器对随机给出的问题进行查询,或许甚至可以使这个版面成为交互式的。
至此,您可能已经想起了许多数据库的用途,这使您有点不能自控了。在回到现实之前,您开始问一些特殊的问题:
■ 这是不是有点野心勃勃了?在准备时是不是要做大量的工作?当然,如果只是想而不去做,则任何事情都很简单,我并不伪称上述所有事情实现起来都是微不足道的。然而,在本书结束时,我们所描述的这些事都实现了。只需记住一件事,没必要一次做完所有的事。我们将对工作进行分解,每次只做一部分。
■ MySQL(和PHP搭配之最佳组合)能够完成所有这些事吗?不,它不能够。例如,MySQL(和PHP搭配之最佳组合)没有直接的Web 能力。虽然由MySQL(和PHP搭配之最佳组合)自身不能完成我们所讨论的每样事情,但是可以得到与MySQL(和PHP搭配之最佳组合)一起工作的工具,从而完善和扩展了MySQL(和PHP搭配之最佳组合)的能力。我们将用Perl 脚本语言和DBI(数据库接口)Perl 模块来编写访问MySQL(和PHP搭配之最佳组合)数据库的脚本。Perl 具有极为出色的文本处理能力,它允许以一种高度灵活的方式处理查询结果以产生各种格式的输出。例如,我们可以用Perl 来生成多信息文本格式( RT F)的姓名地址录,这是一种可被所有字处理器读取的格式。我们也可以使用另一种脚本语言PHP。PHP 特别适合于编写Web 应用,而且它与数据库一起工作。这使得能从Web 页运行MySQL(和PHP搭配之最佳组合)查询并生成包含数据库查询结果的新页。PHP 与apache(Unix平台最流行的WEB服务器平台)(世界上最流行的Web 服务器)一起工作得很好,这使得完成诸如给出一个搜索窗口并显示搜索结果之类的事情很容易。MySQL(和PHP搭配之最佳组合)与这些工具集成得很好,并向您提供了以自己的方式组合它们的灵活性,可以进行选择以实现您的设想。不用受限于那些大肆推销的所谓“集成”功能而实际工作起来也只是彼此之间的固定组合。
■ 最后,有一个大问题,那就是所有这些东西要花多少钱?首先,同盟的预算是有限的。回答是,大概什么钱也不用花,这可能会令您吃惊。如果您熟悉一般的数据库系统,就会知道,它们一般相当昂贵。但是, MySQL(和PHP搭配之最佳组合)一般是免费的。在某些环境下,确实不
需要许可证,而且如果用户数量不限也只需花$200。(关于许可证的一般介绍请参阅前言,特定的细节可参阅MySQL(和PHP搭配之最佳组合)参考指南。)我们将使用的其他工具( Perl、DBI、PHP、apache(Unix平台最流行的WEB服务器平台))也是免费的,因此,所有东西都考虑到了,可以相当便宜地组成一个有用的系统。开发这个数据库的操作系统的选择取决于您。我们介绍的所有软件都可运行在UNIX 下,其中大多数可以运行在Windows 下。作者推荐在UNIX 下运行MySQL(和PHP搭配之最佳组合)和其他工具。它们全都是发源于UNIX 下,然后才转到Windows的。这表示它们的Windows 版本成熟期较短,尚未经过彻底的测试和使用。
现在,让我们来考虑一下使用样例数据库的其他情形。
1.2.2 学分保存方案
初步的想法是,作为一个老师,有保存学分的职责。老师希望将学分处理从学分簿上的手工操作转到MySQL(和PHP搭配之最佳组合)上用电子表示。在此情形下,想从数据库得到的是含在学分簿中的东西:
■ 对于每次测验或测试,要记录学分。对测试,将学分排序,以便能确定每个字符( A、B、C、D 和F)所代表等级的得分范围。
■ 在学分时段结束时,计算每个学生的总得分,然后排序总的得分并根据它们确定得分等级。总的得分可能涉及权重计算,因为大概会希望使测试的得分比测验和得分权重更大。
■ 在每个学分时段结束时,提供出勤信息给学校办公室。目的是避免手工排序和汇总学分及出勤率记录。换句话说,希望MySQL(和PHP搭配之最佳组合)在学分时段结束时对学分排序并完成每个学生的总分和缺课数的计算。为了达到这个目的,需要班级中的学生名册、每次测验和测试的分数以及学生缺课的日期。
1.2.3 样例数据库怎样才能满足需求
如果您对历史同盟或学分保存不太感兴趣,可能会奇怪为什么必须做这些例子呢?答案是这些样例方案本身并不是目的,只是用它们说明利用MySQL(和PHP搭配之最佳组合)及其相关的工具能做什么事。加上一点想像,您将会看到样例数据库的查询怎样应用到所希望解决的问题上。假设您在前面提到的牙科诊所上班,将会在本书中看到许多牙科方面的查询。例如,确定历史同盟的哪些会员需要立即更新他们的会员资格,这是一件类似于确定哪些病人近来没有来看牙医的事情。两者都是基于日期的查询,因此,一但学会了编写会员更新的查询,便可以将该技术用来编写更为感兴趣的延误的预约病人查询。
更多精彩
赞助商链接