用ASP完成電子賀卡
發(fā)表時(shí)間:2024-05-18 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]電子賀卡程序的數(shù)據(jù)庫結(jié)構(gòu)。(這僅代表我個(gè)人的在某一段時(shí)間的看法)。 表ECARD 賀卡的編號(hào) ID 自動(dòng)編號(hào)字段賀卡的標(biāo)題TITLE 賀卡的作者author 賀卡的大類別catalog1 賀卡的二級(jí)類...
電子賀卡程序的數(shù)據(jù)庫結(jié)構(gòu)。(這僅代表我個(gè)人的在某一段時(shí)間的看法)。
表ECARD
賀卡的編號(hào) ID 自動(dòng)編號(hào)字段
賀卡的標(biāo)題TITLE
賀卡的作者author
賀卡的大類別catalog1
賀卡的二級(jí)類別catalog2
賀卡的類型cardtype 標(biāo)明是flash卡,還是圖片(可能還有JAVA卡)
大圖片的名稱image 當(dāng)然可以是flash或是其他文件的名稱,可以包括路徑
小圖片的名稱simage
表order_card,用來存放預(yù)定的賀卡。
預(yù)定賀卡的id 經(jīng)過編碼后生成提取卡片的key
大圖片的名稱image
模板的名稱template 用來存放模板的名稱
寄卡人名稱sender
寄卡人郵件sendermail
收卡人名稱receiver
收卡人的郵件receivermail
是否收件確認(rèn)confirm 寄卡人用來選擇是否要回執(zhí)(我覺得這是最不必要的,還不如都給他回復(fù))
寄卡時(shí)間senddate 可以選用日期型的數(shù)據(jù),我認(rèn)為日期是一個(gè)需要認(rèn)真對(duì)待的問題,特別是在前段時(shí)間我在日期格式不斷遇到問題。
接下來的分類列出賀卡,分頁顯示的問題,我想這里所有的人了解的要比我深很多。關(guān)于整個(gè)程序的算法實(shí)現(xiàn),我還有一些想法,不知是否能構(gòu)簡(jiǎn)化操作,請(qǐng)大家?guī)臀铱匆幌隆?br>1、賀卡的大數(shù)別和二級(jí)類別最好存放在另一張表中,產(chǎn)生一個(gè)自動(dòng)編號(hào)的值存放在ecard表中,我這樣做是因?yàn)槲艺J(rèn)為對(duì)一個(gè)字段進(jìn)行判斷,要比對(duì)二個(gè)字段進(jìn)行判斷要快很多。在sql server中是不是這樣我不明白,我在access中這種差距是很明顯的。這樣子在對(duì)賀卡進(jìn)行管理時(shí)可能比較麻煩,但畢竟次數(shù)不是很多。
2、顯示分類的頁就不要從庫里取了,可以用手工作好,更好的方法用程序一次性生成了。各類別的分頁顯示,具體的賀卡頁面可以用程序生成,也可以用asp動(dòng)態(tài)從庫中去取。在前一端時(shí)間我狂熱的迷上了靜態(tài)頁面,將所有的賀卡頁面和鏈結(jié)頁面都生成了靜態(tài)的網(wǎng)頁,但隨之出現(xiàn)了一些問題,要在靜態(tài)頁面中產(chǎn)生一些動(dòng)態(tài)頁面的效果所付出的努力要大很多。同時(shí)由于程序的復(fù)雜性變大,頁面生成不夠自動(dòng),變成許多時(shí)候要停下手邊的工作去更新賀卡頁面,而且這樣做系統(tǒng)的復(fù)雜性變高,或許你會(huì)說這沒什么難的,但想到如果另一個(gè)人接手這一工作,如果要對(duì)服務(wù)器進(jìn)行遷移,涉及的工作就會(huì)變得比較多了。由此我得出一個(gè)結(jié)論,如果你不是專職于這個(gè)賀卡程序,或者專門負(fù)責(zé)幾樣工作,如果你工作的不是一個(gè)專職的賀卡網(wǎng)站,我想動(dòng)態(tài)頁面是一個(gè)比較好的選擇,當(dāng)然如果你有更好的算法來實(shí)現(xiàn)那就另當(dāng)別論了。
3、如果你使用的是動(dòng)態(tài)頁面,在分頁顯示所有賀卡時(shí),在鏈結(jié)中可以包含template,image等參數(shù),而不是僅僅傳遞一個(gè)id值,因?yàn)榫唧w顯示賀卡信息的頁有了這些值就可以顯示特定的賀卡,而不要再次操作數(shù)據(jù)庫了。
4、這里我們使用wsh來實(shí)現(xiàn)定時(shí)發(fā)卡功能,至于如何使用wsh來發(fā)卡我們?cè)诹硪徽聛韺iT敘述。
5、由于使用了wsh來實(shí)現(xiàn)定時(shí)發(fā)卡,我們可以配合jmail或其他任何一個(gè)發(fā)信組件來發(fā)送html格式的信件而不像sql mail只能發(fā)送文件格式的信件。在html格式的信中我們可以嵌入javascript <script src=http://*.*/confirm.asp?reveiver=****&sendermail=*****></script>這樣在comfirm.asp中取到這幾個(gè)值,不要操作任何數(shù)據(jù)庫就可以生成確認(rèn)信了。如果你還要什么其他參數(shù)讓它一并送回來給你就行了。
6、還有一個(gè)問題,純屬個(gè)人看法。如果我們直接發(fā)送賀卡給用戶,用戶就可以在一段時(shí)間內(nèi)收藏賀卡,現(xiàn)在幾乎所有的賀卡網(wǎng)站都是發(fā)送一個(gè)鏈結(jié)讓人去提取賀卡,這樣的話收藏的就很不方便了,只能看過就算了。為什么網(wǎng)頁設(shè)計(jì)者會(huì)選擇這么做呢,我想想法不外乎增加網(wǎng)站的訪問量,讓我們假設(shè)一下,如果每一位收卡人我們都要求他成為我們的會(huì)員才能閱覽賀卡,這樣不是更增加訪問量嗎,結(jié)果會(huì)怎樣呢?我個(gè)人的想法,一個(gè)網(wǎng)站應(yīng)站在訪問者的角度上去看待問題,才能留住訪問者。
7、如果發(fā)送html格式的賀卡給收件人,庫中的記錄就可以刪除了。但保守一點(diǎn)考慮,如果收件人采用web方式收信,不能正確瀏覽賀卡時(shí),應(yīng)提供一個(gè)功能讓收信人可以通過輸入一個(gè)key來提取賀卡,這樣我們可能就不能刪除記錄,而應(yīng)將它保存至一個(gè)時(shí)限。
8、如果采用發(fā)給收件人一個(gè)key的方法,這個(gè)key可以通過對(duì)ID進(jìn)行簡(jiǎn)單的可逆的編碼產(chǎn)生一個(gè)key。
9、刪除賀卡時(shí)應(yīng)先作標(biāo)記,在一段時(shí)間后再進(jìn)行刪除,以保證鏈結(jié)的完整性。
10、記住簡(jiǎn)單就是美,在有限的步驟中完成所有的操作,讓每一步都完成一個(gè)特定的操作,再用一條紅線將它們連在一起,少用判斷,少用假設(shè)。
最后祝大家成功
事情總比你想像的要好。