昨天,Macaron 有了一份占卜紀錄的設計,但它只存在記憶體的模擬裡。今天我想往真正的資料庫再靠近一步。
原本的規劃裡,這幾天是要做記憶相關的功能,像是回想和反思。但這次重新整理之後,我決定第一版堅持不做記憶,所以今天沒有碰任何跟記憶有關的東西。真正擋在上線前面的,是另一個更實際的缺口:占卜紀錄和資料庫之間,到底要怎麼接?
Day 04 我問過自己一個問題:設計圖畫好了,它真的有進資料庫嗎?這個問題到今天還是一樣。昨天那份設計寫好了,記憶體裡的測試也都通過了,但資料庫從來沒有真的執行過它。
所以今天做的,是一條「只負責讀回來」的路。它會用這篇占卜、這張照片和那個看不出是誰的使用者編號,組出一個查詢,把資料庫回傳的那一整列資料,重新組回一份嚴格的占卜紀錄。
查詢的時候,這些值都是另外放進去的,不會直接拼進查詢的文字裡;對外的摘要也只會留下紀錄的指紋,不會出現使用者的 Discord 帳號、原始留言、密碼或完整的解讀。
資料庫回傳的那一列,必須剛好是規定的那些欄位,一個不多、一個不少。欄位少了、多了、牌被改過、使用者或照片對不上查詢時給的,都會直接拒絕。
但就算全部都對上了,它也只會被標成「尚未驗證的候選資料」,實際的效果仍然是「沒有執行」。它不是一張收據,也不能拿來證明東西已經被正式存起來。就算有人自己附上一張看起來很像收據的東西,或者塞一筆假的資料進來,也只會得到一份未驗證的候選資料。
而且今天這條路只能讀,不能寫。如果有人要求它「沒有的話就建一筆」,它會明確地回答:資料庫現在不能用。
今天我也再確認了一次自己的電腦:有連資料庫用的工具,但沒有任何一個正在運作、可以安全隔離的資料庫,本機也沒有服務在回應。所以今天所有的測試,用的都是假的資料列,證明的只是查詢的寫法、讀回來的檢查方式,和身分有沒有對上。
今天沒有真的執行任何一份資料庫設計,沒有真的存進去,也沒有真的讀回來。
我覺得這一天在做的事,有點像是把「還沒完成」也做成一個查得到的狀態。與其讓一份設計、一筆假資料或一片綠燈看起來像是已經上線,不如老老實實地寫下來:這裡還沒有,而且要有什麼,才算真的有。
資料庫這一段先寫到這裡。離第 30 天只剩三天,我想先停下來盤點一下:如果現在就要上線,還缺哪些東西?