這是我的文章備份,原文出處: 我想寫程式#3 之 「簡單地設計自己的資料表(Table)」
http://www.dotblogs.com.tw/mis2000lab/archive/2008/09/08/5316.aspx



前兩篇文章,有跟大家分享過,我是怎麼建議初學者「該不該事事都靠自己寫程式?」

也分享過「我是怎麼引導初學者開始寫程式的」

這一次,要跟大家分享「初學者怎麼依照實際需求,設計自己的資料表(Table)」

這一點非常非常困難,要靠經驗累積才能達到。因此,先用別人設計好的 Table玩一陣子,玩透了,自然就會自己開規格。

當客戶提出要求,自己可以開Table Schema、自己寫程式來解決問題,這樣才是一個稍有資格出道的 Web程式設計師。

不會自己開Table,程式就不知道該怎麼寫。

目前的商用軟體、Web系統,背後都跟資料庫息息相關。

相關文章可以參考 Allen Kuo這兩篇文章,

網路上很多人在問「購物車要怎麼做?會員管理系統要怎麼做?購物網站怎麼做?留言版要怎麼做?」

絕大部分是他們不會依照需求,來開Table。    倒不是他們不會寫程式。

要破除這種困境,最簡單的方式,就是玩一個「萬用Table」。

所謂的萬用Table,就是我在我的書本裡面附上的 「Test 資料表(Table)」   (新書上市-- ASP.NET專題實務(文魁出版) )

這個Table,可以幫你做一個公告欄、也可以當成購物網站、也可以當成線上媒體(例如:聯合新聞網、中時電子報)......

資料可以撈出來(Output),也可以回寫(Input)新文章、點閱率、轉寄率等等。

一個資料表,就能做到 Master-Detail(中國大陸 內地稱為主細表)的功能。

從單一Table下手,是最簡單的方式。

幾乎有八成的範例,都在同一個Table上完成。所以我才稱「它」是我上課用的「萬用Table」

並不是這個 Table 真的天下無敵啦~就如同以前大家常引用微軟的北風(NorthWind)資料庫來教學一樣,只不過北風資料庫的關聯,其實比我這個範例複雜多了。

當初學者發現,原來開一個好用的 Table之後,相同的程式,就可以寫出網站的許多功能。

他們就會發現,Table開得好,程式也會好寫。

在商用系統上,核心還是資料庫。

然後,可以加入另外一個 Table,做關連式資料。兩個 Table會有欄位(例如:主索引鍵),將彼此兩者變成相關連。

我在這裡,是用另外一個 Test_Talk資料表,來作留言版。

另外一個Table,是簡單的會員資料表。

我只用了簡單的三個Table,就能做出「大部分」網站常見的功能。

課程結束後,初學者大概都會依照自己的需求,開立簡單的 Table了。

不過,設計 Table與寫出漂亮的SQL指令,都是一件不簡單的事情。

上面的方法,當然是快速入門、無痛入門的起步。

但在資料庫方面要變成高手,要有耐心、要有「十年磨一劍」的心理準備,跟它長期抗戰。

但,寫程式要寫的好,不也是如此?  都要靠經驗累積。 

抱歉,這樣講還是不太清楚,畢竟在講台上口沫橫飛,會比平面的BLOG文字要生動一點。

 "單一Table" 有幾個好處----

1.  可以透過工具(VS 2005/2008)快速完成「新增、刪除、修改、展示」,

      初學者會被吸引,寫起來有趣,就會有信心繼續學下去。

2.  過份複雜的資料庫,例如:北風資料庫,拿來搭配、寫程式。

      學生常常會被搞亂,忘記自己是在學資料庫?還是學寫程式(ASP.NET)?

      這也是我簡化「單一Table」的另一個用意。

      讓學生的關注力,85%~95%放在「程式」上。畢竟,他們要學的是ASP.NET程式。

完成後,就能「騙」他們繼續寫一些ADO.NET程式...........用手寫,不是透過精靈、DataSource去設定的ADO.NET程式

沒錯!我善用「騙術」,不斷地欺騙學生繼續「快樂地」學下去,

等他們發覺、驚醒的時候,課程都快結束了。許多「基礎的功夫」也不知不覺地學好了

電影「倚天屠龍記 之 魔教教主(李連杰主演)」,裡面的魔頭就提到---- 「哈哈~你已經學會九陽神功,功力在體內流竄,這輩子想逃都逃不掉」

 

學程式,一點都不難。    要有方法,要能激起學生的信心與樂趣。

=======================================================================

回想當年在學校,大部分的老師沒辦法教好「程式設計」的原因有兩個:

第一,老師太聰明。

第二,範例太抽象。

學校(大學院校)的老師太聰明了,各個都是博士,他們的「求學生涯」中,沒有學不會的課程。說不定也沒有被當、重修過...

上了幾次課,學生還是聽不懂,他們(老師)還覺得奇怪「這麼簡單,你們怎麼學不會?」「人家台大的課程,是不會上課教你寫程式的,要回家自己看書」

再來,程式設計太抽象,找不到好的範例,導致上課時的範例都很無趣。

所以,每次上課都在寫九九乘法表、最大公因數、計算一些數學問題、用 *號畫一個直角三角形或是菱形。

上面這兩點,不光是我的求學經驗,在台灣的大學院校裡面,學程式設計,99%的人都遇見過,對吧!

這不能怪大學院校的老師啊。我以前的老師說的有理,「我雖然是博士,但學術能力好,未必(寫程式)專業技巧就好啊」

大學院校的老師,很難「感同身受」。以「同理心」改變自己,去指導大部分資質普通的一般學生

因為對他們來說,他們一輩子在學校都是名列前茅,課程從來沒有聽不懂、學不會、考不好的。

他們怎麼能體會一般學生的學習困境在哪裡?哪裡會遇見瓶頸?

而我不一樣,「吾少也賤,故多能鄙事」。

我出身不好,寫程式也是出社會被逼的。

教我學會寫程式的,是「以前人家留下的程式」。

嚴格的說,我第一次去修改系統時,沒有人帶。

我是在實戰中,一行一行程式碼,被磨出來的。    更生動地說,我不是學院派的,我是「打架派」的。

我學到的功夫與招式,都是被人家毒打一頓,(沒被打死)才學到的。

因為出了社會、領了薪水,兩三個月沒成績,我就死定了。

我能有點領悟,都是從 "實戰" 中獲得的。

所以我特別能瞭解:從哪裡著手,會減少磨合?會讓初學者快速上手?會讓他們有信心度過第一個月「無趣」的學習低潮?

這些故事,以前也跟大家分享過了,請看這兩篇文章 -- 

故事一:

我畢業後,進了一家半官方的公司。老闆一看我是資管畢業,就說:「去寫程式!」

那時的國防役,沒現在這麼多選擇。沒辦法像現在這麼率性,稍稍不如意,就放棄、就回去當兵。

那時民風純樸,我也有心要跟它幹到底(學經驗)。

 

我就真的接下了一個Web Project。用ASP撰寫的,之前的三個工程師早就離開了,而.....文件呢?

......對不起......  長官說:「什麼文件?你不就是寫程式的嗎?"改"就對啦!」「你不是資管畢業的嗎?一定會的啦!」

也算運氣好。ASP這東西不難,我第一個月就寫了一些小程式。(感謝以前的工程師,他們遺留的程式還算簡單,或是有規律可循,能讓我快速模仿)

第三個月結束,我已經寫出幾支自己會偷笑的東西出來了。(那時頗自得意滿,號稱自己「看見人家網站的功能,就能寫出一樣的」。......但程式效能未必跟人家一樣好,不過功能雷同~)

  

故事二:

2001年,那時候我寫了一段時間的Web程式,被調去資策會的教育訓練中心當講師。

雖然我在學校當過兩年講師,但我心裡也毛毛的。尤其是前一位老師,聽班主任說:上第一節課就被學生抗議 ,轟下台。(因為500小時的就業輔導班,學費很貴,要價十幾萬。學生很認真的~)

我那時候,基本程式只談 IF判別式迴圈。SQL指令只談基本語法(因為有其他專任老師教過資料庫與SQL了)

第一、二個範例,就是 Master-Detail。

第三個範例,就是資料新增。

....然後是簡單的搜尋引擎、會員註冊與功能(Session & Cookie)、留言版、關連式資料庫、其他常見的網站功能。

 

那時的班主任也很怕,我下這種猛藥(前三個範例,前三節課的內容)。學生一旦學不會立刻又抗議了

沒想到情況出奇的好!因為這些範例,每個網站都有,都用的到。所以學生學習興致高。

我又刻意把範例的難度降低。    日後慢慢加入新功能,最後補齊。學生學起來都不錯,回家作業都能完成。

最後,要畢業前的專題,竟然通通都選Web專案來作。可見他們對於Web Programming有興趣、也有信心能做好。

最後............................................................

又是廣告時間了,如果你沒上過我的課,又嫌資策會就業輔導班的學費太貴(十幾萬起跳),那就賭一下,買一下我的書吧。

 (新書上市-- ASP.NET專題實務(文魁出版) )

當然,哈拉這麼久,別忘記今天的值班正妹----田中麗奈

我不小心看到她有演一部國片,名叫「幻遊傳」,最近有線電視(龍祥電影台)在撥。

...................................................................................................................................................................................................................

新書上市-- ASP.NET專題實務(文魁出版 / P8187)。懇請支持,謝謝。

2008/八月份 天瓏書局排行榜前十名 

創作者介紹

MIS2000 Lab -- ASP.NET專題實務 / 線上教學文件

MIS2000 Lab 發表在 痞客邦 PIXNET 留言(0) 人氣()