我想寫程式#3 之 「簡單地設計自己的資料表(Table)」

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

這一次,要跟大家分享,「初學者怎麼依照實際需求,設計自己的資料表(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有興趣、也有信心能做好。

 

 

 

 

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

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

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

 

 

 

相關文章:

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

[給初學者的話] 你想像中的「速成」,跟我想的不一樣
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



[給初學者的話]眼大肚皮小 -- 學程式設計,不是去餐廳吃到飽。
http://www.dotblogs.com.tw/mis2000lab/archive/2009/12/14/learning_asp_net.aspx

[給初學者的話] 如何選電腦補習班?? #1....我的回憶 (最昂貴的是「師資」成本)
http://www.dotblogs.com.tw/mis2000lab/archive/2009/02/13/7143.aspx

 

 

 

 

網路上,找到相關的文章:

 
我想離職,學寫程式!(上)
 
我想離職,學寫程式(下)

 

 

 

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

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

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程教學,遠距教學 (Web Form 約 51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (ASP.NET MVC 約 135hr)  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.主講   事先錄好的影片,並非上課側錄!   觀看時,有如「一對一」面對面講課