Day 138 (Week20), 2021/08/28 (Friday)
學習時數:7.5 hr
Done
- [done] w17 hw2 餐廳網頁功能製作(抽獎、後台的刻版)
To Do @ this week
- [ ] w17 & w18 餐廳網頁改寫
- [ ] w17 HW1 部落格改寫(自我檢討)
- [ ] [INT101]
學習心得紀錄
Objective 客觀
餐廳網頁改寫(抽獎設計)
今天花了一早上在思考要怎麼設計資料庫的欄位,以及怎麼寫 JavaScript 隨機抽出獎項。
抽獎設計
查了一些資料,包括資料庫的欄位要怎麼設計、需要哪些欄位,結果查到了壹獎五位、二獎三位諸如此類的名額,然後就在思考:如果是這樣,那不就是抽到二獎的話,要把名額從三位減少一位,變成二位,然後還要紀錄 winning_user
及 winning_prize
,那這樣會變得很複雜,還有好幾個 dataTable
相關聯。
但後來想了一下第八週的抽獎 API,好像就是隨機抽取,然後顯示結果,並沒有這麼複雜,所以後來想說還是先從最簡單的做起,後來的欄位我是設計:獎項次序(0、1、2等)、獎項名稱(如二獎)、獎項品名(如演唱會門票)、獎項敘述(市價 500 元)、圖片網址、權重、獎品數量。
抽獎的 JavaScript 思考
稍微使用 JS 試做了權重的隨機抽獎,有在思考到底要怎麼加權,後來想到的是將加權加總,然後再把這些壹獎二獎分別代表的值為 1、2,建立陣列,將獎項以元素在獎項裡的以數量的權重形式放在陣列裡面,再以亂數抽取數字,得到獎項。但後來又思考了一下,在後台修改機率,然後還有剩餘為尚未中獎,如此的話要怎麼安排。
如果單寫 JavaScript 測試 OK,那要連結上 Express、Sequelize 的資料庫取資料的話,還沒想到要怎麼取。
感受
今天真的是一個數學與邏輯在打架的一天QQ,真的是對於數學跟程式,需要花時間去思考跟理解,然後今天思考著思考著,從抽獎又想到了「統計」,好像想起以前的一些課程在寫程式、科學跟統計的探討,應該是統計與科學吧...。有空再回去複習一下,看這個跟機率、程式、數學有什麼關系...。
只做出了新增抽獎項目以及從資料庫抓出來的 data,明天繼續思考怎麼將抽獎放進去!
Decisional 決定行動
今天思考要怎麼呈現後台、資料庫欄位、不同機率的抽獎想了很久很久,希望明天可以將 JS 隨機抽獎的 code 及後端連結起來!