前兩篇文章,有跟大家分享過,我是怎麼建議初學者「該不該事事都靠自己寫程式?」
也分享過「我是怎麼引導初學者開始寫程式的」
這一次,要跟大家分享,「初學者怎麼依照實際需求,設計自己的資料表(Table)」
前兩篇文章,有跟大家分享過,我是怎麼建議初學者「該不該事事都靠自己寫程式?」
也分享過「我是怎麼引導初學者開始寫程式的」
這一次,要跟大家分享,「初學者怎麼依照實際需求,設計自己的資料表(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程式
沒錯!我善用「騙術」,不斷地欺騙學生繼續「快樂地」學下去,
等他們發覺、驚醒的時候,課程都快結束了。許多「基礎的功夫」也不知不覺地學好了
電影「倚天屠龍記 之 魔教教主(李連杰主演)」,裡面的魔頭就提到---- 「哈哈~你已經學會九陽神功,功力在體內流竄,這輩子想逃都逃不掉」
學程式,一點都不難。 要有方法,要能激起學生的信心與樂趣。
2008/9/11補充:
每個人設計資料表,都各有方法。而不同的資料表架構,寫出的程式都會各異。
如果您想要找一個範例,可以到微軟的下載區,找一下北風資料庫(NorthWind),他有Access與MS SQL Server的範例可以下載。
北風資料庫的範例:Orders(訂單) => Order Details(訂單的細項)。一份訂單裡面,總會有好幾項商品(一對多)。這個就是很基礎的 Master-Detail的關連式資料表設計。
或是參考 Topcat寫的這篇文章:巢狀GridView範例(多筆訂單、訂單明細設計範例)錄影
如果您(初學者)這裡搞不懂,或是想不通。那麼,直接去硬幹程式,寫出的東西往往不太有用。或是很快就會遇見瓶頸。
如果你的資料表設計的好,那麼跟著規格去寫程式,就會順利很多。
寫一陣子後,自己就會有概念,自己就會開資料表的規格。
以後接到客戶需求時,會把「資料表的設計 與 程式」做一個整體的規劃,那時就會發現,寫程式真是水到渠成的小事而已。
=======================================================================
回想當年在學校,大部分的老師沒辦法教好「程式設計」的原因有兩個:
第一,老師太聰明。
第二,範例太抽象。
學校(大學院校)的老師太聰明了,各個都是博士,他們的「求學生涯」中,沒有學不會的課程。說不定也沒有被當、重修過...
上了幾次課,學生還是聽不懂,他們(老師)還覺得奇怪「這麼簡單,你們怎麼學不會?」「人家台大的課程,是不會上課教你寫程式的,要回家自己看書」
再來,程式設計太抽象,找不到好的範例,導致上課時的範例都很無趣。
所以,每次上課都在寫九九乘法表、最大公因數、計算一些數學問題、用 *號畫一個直角三角形或是菱形。
上面這兩點,不光是我的求學經驗,在台灣的大學院校裡面,學程式設計,99%的人都遇見過,對吧!
這不能怪大學院校的老師啊。我以前的老師說的有理,「我雖然是博士,但學術能力好,未必(寫程式)專業技巧就好啊」
大學院校的老師,很難「感同身受」。以「同理心」改變自己,去指導大部分資質普通的一般學生。
因為對他們來說,他們一輩子在學校都是名列前茅,課程從來沒有聽不懂、學不會、考不好的。
他們怎麼能體會一般學生的學習困境在哪裡?哪裡會遇見瓶頸?
而我不一樣,「吾少也賤,故多能鄙事」。
我出身不好,寫程式也是出社會被逼的。
教我學會寫程式的,是「以前人家留下的程式」。
嚴格的說,我第一次去修改系統時,沒有人帶。
我是在實戰中,一行一行程式碼,被磨出來的。 更生動地說,我不是學院派的,我是「打架派」的。
我學到的功夫與招式,都是被人家毒打一頓,(沒被打死)才學到的。
因為出了社會、領了薪水,兩三個月沒成績,我就死定了。
我能有點領悟,都是從 "實戰" 中獲得的。
所以我特別能瞭解:從哪裡著手,會減少磨合?會讓初學者快速上手?會讓他們有信心度過第一個月「無趣」的學習低潮?
這些故事,以前也跟大家分享過了,請看這兩篇文章 --
故事一:
我畢業後,進了一家半官方的公司。老闆一看我是資管畢業,就說:「去寫程式!」
那時的國防役,沒現在這麼多選擇。沒辦法像現在這麼率性,稍稍不如意,就放棄、就回去當兵。
那時民風純樸,我也有心要跟它幹到底(學經驗)。
我就真的接下了一個Web Project。用ASP撰寫的,之前的三個工程師早就離開了,而.....文件呢?
......對不起...... 長官說:「什麼文件?你不就是寫程式的嗎?"改"就對啦!」「你不是資管畢業的嗎?一定會的啦!」
也算運氣好。ASP這東西不難,我第一個月就寫了一些小程式。(感謝以前的工程師,他們遺留的程式還算簡單,或是有規律可循,能讓我快速模仿)
第三個月結束,我已經寫出幾支自己會偷笑的東西出來了。(那時頗自得意滿,號稱自己「看見人家網站的功能,就能寫出一樣的」。......但程式效能未必跟人家一樣好,不過功能雷同~)
故事二:
2001年,那時候我寫了一段時間的Web程式,被調去資策會的教育訓練中心當講師。
雖然我在學校當過兩年講師,但我心裡也毛毛的。尤其是前一位老師,聽班主任說:上第一節課就被學生抗議 ,轟下台。(因為500小時的就業輔導班,學費很貴,要價十幾萬。學生很認真的~)
我那時候,基本程式只談 IF判別式 與 迴圈。SQL指令只談基本語法(因為有其他專任老師教過資料庫與SQL了)
我的重點,就是把前面教過的東西,通通「串」起來
做出「整合的」成果
第一、二個範例,就是 Master-Detail。
第三個範例,就是資料新增。
....然後是簡單的搜尋引擎、會員註冊與功能(Session & Cookie)、留言版、關連式資料庫、其他常見的網站功能。
那時的班主任也很怕,我下這種猛藥(前三個範例,前三節課的內容)。學生一旦學不會立刻又抗議了
沒想到情況出奇的好!因為這些範例,每個網站都有,都用的到。所以學生學習興致高。
我又刻意把範例的難度降低。 日後慢慢加入新功能,最後補齊。
學生學起來都不錯,回家作業都能完成。
最後,要畢業前的專題,竟然通通都選Web專案來作。
可見他們對於Web Programming有興趣、也有信心能做好。
最後............................................................
又是廣告時間了,如果你沒上過我的課,又嫌資策會就業輔導班的學費太貴(十幾萬起跳),那就賭一下,買一下我的書吧。
相關文章:
..........................................................................................................................................................
[給初學者的話] 你想像中的「速成」,跟我想的不一樣
http://www.dotblogs.com.tw/mis2000lab/archive/2012/05/17/fast_food_fast_learning.aspx
[轉貼]GridView 72般絕技 -- 作者:清清月兒。 兼論:我學習.NET的心路過程
http://www.dotblogs.com.tw/mis2000lab/archive/2011/12/27/63495.aspx
[自我評量表] ASP.NET 我該上什麼課?入門、或是進階?...以「ASP.NET專題實務」本書為例
http://www.dotblogs.com.tw/mis2000lab/archive/2011/07/05/one_mile_width_one_feet_deepth.aspx
[給初學者的話]挑書與買書,買適合自己的書(電腦書、程式設計入門書)
http://www.dotblogs.com.tw/mis2000lab/archive/2010/11/15/choice_your_style_choice_good_book_for_yourself.aspx
[給讀者的話] 我知道你不是爛草莓,只是對自己期望太高
http://www.dotblogs.com.tw/mis2000lab/archive/2010/08/03/16984.aspx
網路上,找到相關的文章:
當然,哈拉這麼久,別忘記今天的值班正妹----田中麗奈
我不小心看到她有演一部國片,名叫「幻遊傳」,最近有線電視(龍祥電影台)在撥。
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
......... facebook社團 https://www.facebook.com/mis2000lab ......................
......... YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。